<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>processkit</title><link>https://projectious-work.github.io/processkit/</link><description>Recent content on processkit</description><generator>Hugo</generator><language>en</language><atom:link href="https://projectious-work.github.io/processkit/index.xml" rel="self" type="application/rss+xml"/><item><title>apiVersion Policy</title><link>https://projectious-work.github.io/processkit/docs/reference/apiversion-policy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/reference/apiversion-policy/</guid><description>&lt;p&gt;processkit uses a Kubernetes-style &lt;code&gt;apiVersion&lt;/code&gt; field on every entity:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;apiVersion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;processkit.projectious.work/v1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="the-group"&gt;The group&lt;/h2&gt;
&lt;p&gt;The group &lt;code&gt;processkit.projectious.work&lt;/code&gt; is a reverse-DNS name anchored on
the owning organization (&lt;code&gt;projectious.work&lt;/code&gt;) with &lt;code&gt;processkit&lt;/code&gt; as a
subcomponent. This prevents name collisions if other organizations fork
or publish compatible primitives under their own domains.&lt;/p&gt;
&lt;p&gt;The form &lt;code&gt;&amp;lt;reverse-dns-group&amp;gt;/&amp;lt;version&amp;gt;&lt;/code&gt; is the Kubernetes-idiomatic
shape — exactly one slash. Tools that split on &lt;code&gt;/&lt;/code&gt; expect exactly two
parts.&lt;/p&gt;
&lt;h2 id="evolution-rules"&gt;Evolution rules&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;apiVersion&lt;/th&gt;
 &lt;th&gt;Status&lt;/th&gt;
 &lt;th&gt;Meaning&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;processkit.projectious.work/v1&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;current v0.x entity format&lt;/td&gt;
 &lt;td&gt;Initial public entity version&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;processkit.projectious.work/v1beta1&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;not used&lt;/td&gt;
 &lt;td&gt;Reserved&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;processkit.projectious.work/v2&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;planned&lt;/td&gt;
 &lt;td&gt;Breaking contract with explicit migration required&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="non-breaking-changes-stay-at-v1"&gt;Non-breaking changes (stay at v1)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Adding new optional fields to schemas&lt;/li&gt;
&lt;li&gt;Adding new primitive kinds&lt;/li&gt;
&lt;li&gt;Adding new states to a state machine&lt;/li&gt;
&lt;li&gt;Adding new skills&lt;/li&gt;
&lt;li&gt;Adding new packages&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="breaking-changes-require-v2"&gt;Breaking changes (require v2)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removing or renaming existing fields&lt;/li&gt;
&lt;li&gt;Changing the type or meaning of existing fields&lt;/li&gt;
&lt;li&gt;Removing states from a state machine (stranding existing entities)&lt;/li&gt;
&lt;li&gt;Removing primitive kinds&lt;/li&gt;
&lt;li&gt;Changing the semantics of &lt;code&gt;metadata.id&lt;/code&gt;, &lt;code&gt;metadata.created&lt;/code&gt;, or other cross-cutting fields&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="migration-between-versions"&gt;Migration between versions&lt;/h2&gt;
&lt;p&gt;The SmoothTiger/SmoothRiver v2 direction is a &lt;strong&gt;no-shim&lt;/strong&gt; contract:
v2 schemas and index semantics become authoritative, and processkit does
not add hidden dual-read or permissive validation paths for v1 data.
Existing v1 contexts remain a migration source, not a long-term
compatibility target.&lt;/p&gt;</description></item><item><title>Entity File Format</title><link>https://projectious-work.github.io/processkit/docs/primitives/format/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/format/</guid><description>&lt;p&gt;Every processkit primitive entity is stored as a Markdown file with a
YAML frontmatter block. The format is inspired by Kubernetes objects —
stable, versioned, and easy to parse.&lt;/p&gt;
&lt;h2 id="canonical-shape"&gt;Canonical shape&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;apiVersion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;processkit.projectious.work/v1 &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# required — schema version&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;WorkItem &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# required — primitive type&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# required&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;BACK-calm-fox&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;created&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ld"&gt;2026-04-06T10:30:00Z&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;updated&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ld"&gt;2026-04-06T11:15:00Z&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;labels&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;priority&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;high&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;spec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# required — entity-specific&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Add a release audit check&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;in-progress&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;assignee&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;ACTOR-alice&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Body — freeform Markdown&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="l"&gt;Human-readable description, acceptance criteria, notes, history.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="the-four-top-level-keys"&gt;The four top-level keys&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Required&lt;/th&gt;
 &lt;th&gt;Purpose&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;apiVersion&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;Schema version. Always &lt;code&gt;processkit.projectious.work/v1&lt;/code&gt; at v0.x.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;Primitive type. Determines which schema validates &lt;code&gt;spec&lt;/code&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;Identity, timestamps, labels. Cross-cutting fields.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;Entity-specific fields. Validated by primitive schema.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="metadata-fields"&gt;metadata fields&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Required&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Notes&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;id&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Unique identifier. Format configurable (see below).&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;created&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;ISO 8601 datetime&lt;/td&gt;
 &lt;td&gt;UTC. Never edited after creation.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;updated&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;ISO 8601 datetime&lt;/td&gt;
 &lt;td&gt;Set on modification.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;labels&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;map[string]string&lt;/td&gt;
 &lt;td&gt;Arbitrary key-value tags. Used by queries and filters.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="id-formats"&gt;ID formats&lt;/h2&gt;
&lt;p&gt;Configurable per project through installer or processkit settings:&lt;/p&gt;</description></item><item><title>Harness Compatibility</title><link>https://projectious-work.github.io/processkit/docs/mcp-servers/harness-compatibility/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/mcp-servers/harness-compatibility/</guid><description>&lt;p&gt;processkit&amp;rsquo;s MCP servers are provider-neutral Python programs. They do
not require aibox at runtime. aibox can install processkit, merge MCP
configuration, pre-authorize processkit tools where a harness supports
that, and supervise a managed devcontainer. Those are convenience and
lifecycle features; they are not a processkit dependency.&lt;/p&gt;
&lt;p&gt;For a direct install, point the harness at the desired server command
inside the installed &lt;code&gt;context/skills&lt;/code&gt; tree. The recommended one-process
entry point is:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;mcpServers&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;processkit-gateway&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;uv&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;run&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;context/skills/processkit/processkit-gateway/mcp/server.py&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;env&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;PROCESSKIT_MCP_MODE&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;gateway&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="current-modes"&gt;Current modes&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Mode&lt;/th&gt;
 &lt;th&gt;Use when&lt;/th&gt;
 &lt;th&gt;Harness impact&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Per-skill servers&lt;/td&gt;
 &lt;td&gt;You need fine-grained tool registration or the broadest compatibility.&lt;/td&gt;
 &lt;td&gt;The harness launches one stdio process per registered skill.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;aggregate-mcp&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;You already use the legacy aggregate server.&lt;/td&gt;
 &lt;td&gt;One stdio process, compatibility name, no daemon behavior.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;processkit-gateway&lt;/code&gt; stdio&lt;/td&gt;
 &lt;td&gt;You want the provider-neutral gateway surface now.&lt;/td&gt;
 &lt;td&gt;One stdio process, eager tool import, richer gateway metadata.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Daemon plus stdio proxy&lt;/td&gt;
 &lt;td&gt;You want a long-lived daemon with lightweight harness proxies.&lt;/td&gt;
 &lt;td&gt;One shared daemon plus one lightweight stdio proxy per harness.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The current gateway command is equivalent to:&lt;/p&gt;</description></item><item><title>ID Formats</title><link>https://projectious-work.github.io/processkit/docs/reference/id-formats/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/reference/id-formats/</guid><description>&lt;p&gt;Entity IDs in processkit have the shape &lt;code&gt;&amp;lt;PREFIX&amp;gt;-&amp;lt;id-body&amp;gt;&lt;/code&gt;. The prefix
is determined by the primitive kind and is not configurable. The id-body
has two independent configuration axes: &lt;strong&gt;format&lt;/strong&gt; and &lt;strong&gt;slug&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="configuration"&gt;Configuration&lt;/h2&gt;
&lt;p&gt;In the consuming project&amp;rsquo;s &lt;code&gt;aibox.toml&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;id_format&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;word&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# word | uuid&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;id_slug&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt; &lt;span class="c"&gt;# true | false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="the-four-combinations"&gt;The four combinations&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;code&gt;id_format&lt;/code&gt;&lt;/th&gt;
 &lt;th&gt;&lt;code&gt;id_slug&lt;/code&gt;&lt;/th&gt;
 &lt;th&gt;Example&lt;/th&gt;
 &lt;th&gt;Notes&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;word&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;BACK-calm-fox&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Default. Short, memorable, solo-friendly&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;word&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;BACK-calm-fox-add-lint&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Memorable + descriptive for prose contexts&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;uuid&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;BACK-550e8400-e29b-41d4&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Uniqueness guarantees for large teams&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;uuid&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;BACK-550e8400-add-lint&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;UUID + readable context&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="prefix-registry"&gt;Prefix registry&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Primitive&lt;/th&gt;
 &lt;th&gt;Prefix&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;WorkItem&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;BACK&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;LogEntry&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;LOG&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;DecisionRecord&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;DEC&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Migration&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;MIG&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Artifact&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;ART&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Note&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;NOTE&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Actor&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;ACTOR&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Role&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;ROLE&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Binding&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;BIND&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Scope&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;SCOPE&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Category&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;CAT&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;CrossReference&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Gate&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;GATE&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Schedule&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;SCHED&lt;/code&gt; (legacy v1)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Constraint&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;CONST&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Context&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;CTX&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Discussion&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;DISC&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Process&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;PROC&lt;/code&gt; (legacy v1)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;StateMachine&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;SM&lt;/code&gt; (legacy v1)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;Metric&lt;/code&gt;, &lt;code&gt;Model&lt;/code&gt;, &lt;code&gt;Process&lt;/code&gt;, &lt;code&gt;Schedule&lt;/code&gt;, and &lt;code&gt;StateMachine&lt;/code&gt; do not
reserve first-class primitive prefixes in the v2 contract. The legacy
prefixes remain documented so existing v1 contexts can be migrated and
read correctly.&lt;/p&gt;</description></item><item><title>Installing</title><link>https://projectious-work.github.io/processkit/docs/getting-started/installing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/getting-started/installing/</guid><description>&lt;p&gt;processkit is distributed as versioned GitHub releases. Each release
contains a tarball with the shipped &lt;code&gt;context/&lt;/code&gt;, &lt;code&gt;.processkit/&lt;/code&gt;, and
agent entrypoint files. You can install those files manually or let a
managed environment tool do it.&lt;/p&gt;
&lt;h2 id="manual-install"&gt;Manual install&lt;/h2&gt;
&lt;p&gt;Download and unpack the release tarball:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -L &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; https://github.com/projectious-work/processkit/releases/download/v0.25.1/processkit-v0.25.1.tar.gz &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -o processkit-v0.25.1.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tar -xzf processkit-v0.25.1.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Copy the shipped files into your project:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cp -a processkit-v0.25.1/context ./context
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cp -a processkit-v0.25.1/.processkit ./.processkit
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cp processkit-v0.25.1/AGENTS.md ./AGENTS.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then register the gateway with your harness. For stdio MCP:&lt;/p&gt;</description></item><item><title>minimal</title><link>https://projectious-work.github.io/processkit/docs/packages/minimal/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/packages/minimal/</guid><description>&lt;p&gt;&lt;strong&gt;Intended for:&lt;/strong&gt; solo developers and small side projects.
&lt;strong&gt;Extends:&lt;/strong&gt; — (the base tier)&lt;/p&gt;
&lt;p&gt;The lightest footprint package. Just enough structure to track work and
debug effectively — no roles, no scopes, no governance artifacts.&lt;/p&gt;
&lt;h2 id="included-skills"&gt;Included skills&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;event-log&lt;/code&gt; — foundation: probabilistic append-only event log&lt;/li&gt;
&lt;li&gt;&lt;code&gt;actor-profile&lt;/code&gt; — basic Actor entities&lt;/li&gt;
&lt;li&gt;&lt;code&gt;workitem-management&lt;/code&gt; — WorkItem creation and transitions&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git-workflow&lt;/code&gt; — branch/commit/PR conventions&lt;/li&gt;
&lt;li&gt;&lt;code&gt;debugging&lt;/code&gt; — systematic debug workflow&lt;/li&gt;
&lt;li&gt;&lt;code&gt;testing-strategy&lt;/code&gt; — unit vs integration vs E2E guidance&lt;/li&gt;
&lt;li&gt;&lt;code&gt;error-handling&lt;/code&gt; — cross-language patterns&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="when-to-upgrade"&gt;When to upgrade&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;You&amp;rsquo;re joining a team → &lt;code&gt;managed&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;You need formal decision records, scopes, and process artifacts → &lt;code&gt;managed&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;You&amp;rsquo;re building production software → &lt;code&gt;software&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;You&amp;rsquo;re doing data/ML work → &lt;code&gt;research&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;You need the kitchen sink → &lt;code&gt;product&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="source"&gt;Source&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/projectious-work/processkit/blob/main/src/packages/minimal.yaml" rel="noopener"&gt;&lt;code&gt;src/packages/minimal.yaml&lt;/code&gt;&lt;/a&gt;
&lt;/p&gt;</description></item><item><title>Process Skills</title><link>https://projectious-work.github.io/processkit/docs/skills/catalog/process/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/skills/catalog/process/</guid><description>&lt;p&gt;Skills for managing project workflows, team coordination, and operational
processes. Most process-primitive skills have an accompanying MCP server
that enforces schema validation and state-machine rules.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="workitem-management"&gt;workitem-management&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Creates, transitions, and queries WorkItems — the task-tracking
primitive in processkit. Use when managing backlog items, updating
work item state, or querying items by status, owner, or priority.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Triggers:&lt;/strong&gt; When the user asks to create a ticket, update a work item,
query the backlog, or track progress on a task.
&lt;strong&gt;Tools:&lt;/strong&gt; &lt;code&gt;create_workitem&lt;/code&gt;, &lt;code&gt;transition_workitem&lt;/code&gt;, &lt;code&gt;query_workitems&lt;/code&gt;,
&lt;code&gt;get_workitem&lt;/code&gt;, &lt;code&gt;link_workitems&lt;/code&gt;
&lt;strong&gt;Layers:&lt;/strong&gt; Layer 2 (depends on &lt;code&gt;event-log&lt;/code&gt;, &lt;code&gt;actor-profile&lt;/code&gt;)&lt;/p&gt;</description></item><item><title>Skill Package Format</title><link>https://projectious-work.github.io/processkit/docs/skills/format/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/skills/format/</guid><description>&lt;p&gt;This page summarizes the skill package format. The authoritative source is
&lt;a href="https://github.com/projectious-work/processkit/blob/main/src/context/skills/FORMAT.md" rel="noopener"&gt;&lt;code&gt;src/context/skills/FORMAT.md&lt;/code&gt;&lt;/a&gt;

in the processkit repo.&lt;/p&gt;
&lt;h2 id="directory-layout"&gt;Directory layout&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;src/context/skills/&amp;lt;category&amp;gt;/&amp;lt;skill-name&amp;gt;/
 SKILL.md ← required — three-level agent instructions
 INDEX.md ← optional — human-readable overview
 examples/ ← recommended — example outputs
 templates/ ← recommended — YAML frontmatter entity scaffolds
 references/ ← optional — deep-dive reference material
 mcp/ ← optional — Python MCP server
 server.py
 mcp-config.json
 README.md
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="required-frontmatter-fields"&gt;Required frontmatter fields&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Purpose&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;apiVersion&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Always &lt;code&gt;processkit.projectious.work/v1&lt;/code&gt; at v0.x.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Always &lt;code&gt;Skill&lt;/code&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;metadata.id&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;SKILL-&amp;lt;skill-name&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;metadata.name&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Kebab-case; matches directory name&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;metadata.version&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Semver, independent of processkit release&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;metadata.created&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;ISO 8601 UTC&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;spec.description&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;One-sentence summary (shown in listings)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;spec.category&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;One of the registered categories&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;spec.layer&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Integer 0–4, or &lt;code&gt;null&lt;/code&gt; for non-process skills&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="optional-fields"&gt;Optional fields&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Purpose&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;spec.uses&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Skills this depends on (strictly lower layer for process skills)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;spec.provides&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;What the agent gains: primitive kinds, MCP tools, templates&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;spec.when_to_use&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Trigger description for routing&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;spec.replaces&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;ID of a skill this one overrides (for community forks)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="categories"&gt;Categories&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;process&lt;/code&gt;, &lt;code&gt;language&lt;/code&gt;, &lt;code&gt;framework&lt;/code&gt;, &lt;code&gt;infrastructure&lt;/code&gt;, &lt;code&gt;architecture&lt;/code&gt;,
&lt;code&gt;design&lt;/code&gt;, &lt;code&gt;data&lt;/code&gt;, &lt;code&gt;ai&lt;/code&gt;, &lt;code&gt;api&lt;/code&gt;, &lt;code&gt;security&lt;/code&gt;, &lt;code&gt;observability&lt;/code&gt;, &lt;code&gt;database&lt;/code&gt;,
&lt;code&gt;performance&lt;/code&gt;, &lt;code&gt;meta&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>managed</title><link>https://projectious-work.github.io/processkit/docs/packages/managed/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/packages/managed/</guid><description>&lt;p&gt;&lt;strong&gt;Intended for:&lt;/strong&gt; small teams with a shared backlog and process cadences.
&lt;strong&gt;Extends:&lt;/strong&gt; &lt;code&gt;minimal&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The recommended default. Adds roles, decisions, scopes, and all lightweight
process artifacts (standups, retros, session handovers) on top of minimal.&lt;/p&gt;
&lt;h2 id="what-managed-adds-on-top-of-minimal"&gt;What managed adds on top of minimal&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Process primitives and cross-cutting process skills:&lt;/strong&gt;
&lt;code&gt;role-management&lt;/code&gt;, &lt;code&gt;decision-record&lt;/code&gt;, &lt;code&gt;scope-management&lt;/code&gt;,
&lt;code&gt;category-management&lt;/code&gt;, &lt;code&gt;cross-reference-management&lt;/code&gt;, &lt;code&gt;binding-management&lt;/code&gt;,
&lt;code&gt;process-management&lt;/code&gt;, &lt;code&gt;state-machine-management&lt;/code&gt;, &lt;code&gt;gate-management&lt;/code&gt;,
&lt;code&gt;schedule-management&lt;/code&gt;, &lt;code&gt;constraint-management&lt;/code&gt;, &lt;code&gt;discussion-management&lt;/code&gt;,
&lt;code&gt;metrics-management&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;process-management&lt;/code&gt;, &lt;code&gt;schedule-management&lt;/code&gt;, and &lt;code&gt;state-machine-management&lt;/code&gt;
are included for legacy v1 migration guidance. They are not first-class
v2 primitive authoring surfaces.&lt;/p&gt;</description></item><item><title>Skill Hierarchy</title><link>https://projectious-work.github.io/processkit/docs/skills/hierarchy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/skills/hierarchy/</guid><description>&lt;p&gt;Process-primitive skills form a strict layered DAG. A skill&amp;rsquo;s &lt;code&gt;spec.uses&lt;/code&gt;
field may only reference skills in &lt;strong&gt;lower&lt;/strong&gt; layers. Cycles are validation
errors.&lt;/p&gt;
&lt;h2 id="the-layers"&gt;The layers&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Layer&lt;/th&gt;
 &lt;th&gt;Role&lt;/th&gt;
 &lt;th&gt;Skills&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;0&lt;/td&gt;
 &lt;td&gt;Foundation&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;index-management&lt;/code&gt;, &lt;code&gt;id-management&lt;/code&gt;, &lt;code&gt;event-log&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;td&gt;Primitive management&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;role-management&lt;/code&gt;, &lt;code&gt;actor-profile&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;2&lt;/td&gt;
 &lt;td&gt;Core entities&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;workitem-management&lt;/code&gt;, &lt;code&gt;decision-record&lt;/code&gt;, &lt;code&gt;scope-management&lt;/code&gt;, &lt;code&gt;category-management&lt;/code&gt;, &lt;code&gt;cross-reference-management&lt;/code&gt;, &lt;code&gt;binding-management&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3&lt;/td&gt;
 &lt;td&gt;Workflow policy&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;gate-management&lt;/code&gt;, &lt;code&gt;constraint-management&lt;/code&gt;; legacy/migration guidance for &lt;code&gt;process-management&lt;/code&gt;, &lt;code&gt;state-machine-management&lt;/code&gt;, &lt;code&gt;schedule-management&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;4&lt;/td&gt;
 &lt;td&gt;Cross-cutting&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;discussion-management&lt;/code&gt;, &lt;code&gt;metrics-management&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Layer 0 has three skills with one intra-layer edge.&lt;/strong&gt; &lt;code&gt;index-management&lt;/code&gt;
and &lt;code&gt;id-management&lt;/code&gt; are the absolute foundation — they depend on nothing.
&lt;code&gt;event-log&lt;/code&gt; is also Layer 0 but &lt;code&gt;uses: [index-management, id-management]&lt;/code&gt;,
so it conceptually sits &amp;ldquo;atop&amp;rdquo; them. This is the only intra-layer edge in
the entire hierarchy. The strict-downward rule applies to Layers 1+ unchanged.&lt;/p&gt;</description></item><item><title>State Machines</title><link>https://projectious-work.github.io/processkit/docs/primitives/state-machines/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/state-machines/</guid><description>&lt;p&gt;Primitives with lifecycle (WorkItem, DecisionRecord, Scope, Discussion)
are governed by state machines. processkit ships default machines that
projects can override.&lt;/p&gt;
&lt;h2 id="workitem-default"&gt;WorkItem default&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;backlog → in-progress → review → done
 ↓ ↑
 blocked ↑
 ↓ ↑
 backlog ←
(any state) → cancelled (terminal)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Source: &lt;a href="https://github.com/projectious-work/processkit/blob/main/src/context/state-machines/workitem.yaml" rel="noopener"&gt;&lt;code&gt;src/context/state-machines/workitem.yaml&lt;/code&gt;&lt;/a&gt;
.&lt;/p&gt;
&lt;h2 id="decisionrecord-default"&gt;DecisionRecord default&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;proposed → accepted → superseded (terminal)
 ↓
 rejected (terminal)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Source: &lt;a href="https://github.com/projectious-work/processkit/blob/main/src/context/state-machines/decisionrecord.yaml" rel="noopener"&gt;&lt;code&gt;src/context/state-machines/decisionrecord.yaml&lt;/code&gt;&lt;/a&gt;
.&lt;/p&gt;
&lt;h2 id="overriding-a-default"&gt;Overriding a default&lt;/h2&gt;
&lt;p&gt;Projects override a default by placing a same-named file in their own
&lt;code&gt;context/state-machines/&lt;/code&gt; directory. The index MCP server (v0.3.0) and any
validator prefer the project file over the processkit default.&lt;/p&gt;</description></item><item><title>Version Migration</title><link>https://projectious-work.github.io/processkit/docs/reference/migration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/reference/migration/</guid><description>&lt;p&gt;processkit is distributed as versioned releases. Upgrading pinned
versions is deliberate: processkit does not silently rewrite a consuming
project&amp;rsquo;s context. A version bump should produce a &lt;code&gt;Migration&lt;/code&gt; document
under &lt;code&gt;context/migrations/pending/&lt;/code&gt; that the user and agent work through
together.&lt;/p&gt;
&lt;h2 id="the-model"&gt;The model&lt;/h2&gt;
&lt;p&gt;processkit ships a generic diff script (&lt;code&gt;scripts/processkit-diff.sh&lt;/code&gt;) that
compares two tagged versions of any processkit-compatible source — upstream
processkit, a company fork like &lt;code&gt;processkit-acme&lt;/code&gt;, or any other downstream.
The script reads &lt;code&gt;src/PROVENANCE.toml&lt;/code&gt; at each tag (a single file mapping
every shipped file to the tag in which it last changed) and emits a
structured diff: added, removed, changed, unchanged.&lt;/p&gt;</description></item><item><title>Your First Entity</title><link>https://projectious-work.github.io/processkit/docs/getting-started/first-entity/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/getting-started/first-entity/</guid><description>&lt;p&gt;Create your first WorkItem and see how processkit&amp;rsquo;s entity format works.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A project with processkit installed (see &lt;a href="https://projectious-work.github.io/processkit/docs/getting-started/installing/"&gt;Installing&lt;/a&gt;
).&lt;/li&gt;
&lt;li&gt;A package tier that includes &lt;code&gt;workitem-management&lt;/code&gt;; &lt;code&gt;minimal&lt;/code&gt; and
higher tiers include it.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="creating-a-workitem-by-hand"&gt;Creating a WorkItem by hand&lt;/h2&gt;
&lt;p&gt;Write a file at &lt;code&gt;context/workitems/BACK-first-task.md&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;apiVersion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;processkit.projectious.work/v1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;WorkItem&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;BACK-first-task&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;created&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ld"&gt;2026-04-06T10:00:00Z&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;labels&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;area&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;onboarding&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;spec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Try out processkit&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;backlog&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;task&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;priority&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;medium&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Walk through the processkit docs and create a few entities.&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;## Acceptance criteria&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Read the primitives overview&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Read the skills overview&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Create this first WorkItem&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Transition it to in-progress, then done&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If your installer has a validation command, run it now. The file has the
core &lt;code&gt;apiVersion&lt;/code&gt;, &lt;code&gt;kind&lt;/code&gt;, &lt;code&gt;metadata.id&lt;/code&gt;, and &lt;code&gt;spec&lt;/code&gt; fields expected by
the WorkItem schema.&lt;/p&gt;</description></item><item><title>Language Skills</title><link>https://projectious-work.github.io/processkit/docs/skills/catalog/language/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/skills/catalog/language/</guid><description>&lt;p&gt;Language-specific conventions, patterns, and best practices.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="python-best-practices"&gt;python-best-practices&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Python conventions and patterns &amp;ndash; typing, testing, project layout, tooling. Use when writing or reviewing Python code.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Triggers:&lt;/strong&gt; When the user is working with Python code and asks about conventions, project structure, typing, testing, or says &amp;ldquo;how should I structure this Python project?&amp;rdquo;.
&lt;strong&gt;Tools:&lt;/strong&gt; None
&lt;strong&gt;References:&lt;/strong&gt; None&lt;/p&gt;
&lt;p&gt;Key capabilities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Project layout: &lt;code&gt;src/&lt;/code&gt; layout with &lt;code&gt;pyproject.toml&lt;/code&gt;, use &lt;code&gt;uv&lt;/code&gt; for dependency management&lt;/li&gt;
&lt;li&gt;Type hints on all public function signatures with &lt;code&gt;from __future__ import annotations&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Testing with pytest: fixtures, parametrize, test naming &lt;code&gt;test_&amp;lt;function&amp;gt;_&amp;lt;scenario&amp;gt;_&amp;lt;expected&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Code style: &lt;code&gt;ruff format&lt;/code&gt; and &lt;code&gt;ruff check&lt;/code&gt;, prefer dataclasses/Pydantic over dicts, pathlib over os.path&lt;/li&gt;
&lt;li&gt;Error handling: raise specific exceptions, custom exception classes, never bare &lt;code&gt;except:&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;details&gt;&lt;summary&gt;Example usage&lt;/summary&gt;
&lt;p&gt;User asks to set up a new Python project. The agent creates &lt;code&gt;pyproject.toml&lt;/code&gt; with project metadata and dependencies, &lt;code&gt;src/&lt;/code&gt; layout, &lt;code&gt;tests/&lt;/code&gt; directory, &lt;code&gt;ruff&lt;/code&gt; config, and basic &lt;code&gt;__init__.py&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Privacy Tiers</title><link>https://projectious-work.github.io/processkit/docs/reference/privacy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/reference/privacy/</guid><description>&lt;p&gt;processkit recognizes three privacy tiers for entities under &lt;code&gt;context/&lt;/code&gt;.
The tier is declared via an optional &lt;code&gt;privacy:&lt;/code&gt; field in &lt;code&gt;metadata&lt;/code&gt; and
enforced by directory layout + a &lt;code&gt;.gitignore&lt;/code&gt; rule.&lt;/p&gt;
&lt;h2 id="the-three-tiers"&gt;The three tiers&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Tier&lt;/th&gt;
 &lt;th&gt;Default?&lt;/th&gt;
 &lt;th&gt;Git status&lt;/th&gt;
 &lt;th&gt;Typical use&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;public&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;tracked&lt;/td&gt;
 &lt;td&gt;identity.md, README, public roadmap&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;project-private&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;yes&lt;/strong&gt; (default if omitted)&lt;/td&gt;
 &lt;td&gt;tracked&lt;/td&gt;
 &lt;td&gt;workitems, decisions, logs, working-style.md&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;user-private&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;NOT tracked&lt;/td&gt;
 &lt;td&gt;team-and-relationships.md, personal scratch notes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Most entities omit the field entirely and inherit &lt;code&gt;project-private&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Relationships</title><link>https://projectious-work.github.io/processkit/docs/primitives/relationships/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/relationships/</guid><description>&lt;p&gt;processkit expresses relationships between entities two ways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Cross-references&lt;/strong&gt; — lightweight fields in frontmatter&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bindings&lt;/strong&gt; — first-class entities with their own files&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Pick the right one based on what the relationship needs.&lt;/p&gt;
&lt;h2 id="the-rule"&gt;The rule&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;If a relationship has &lt;strong&gt;scope&lt;/strong&gt;, &lt;strong&gt;time&lt;/strong&gt;, or &lt;strong&gt;its own attributes&lt;/strong&gt; → Binding.
Otherwise → cross-reference.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="cross-reference-examples"&gt;Cross-reference examples&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# In a WorkItem&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;spec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;blocks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;BACK-swift-oak]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;blocked_by&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;BACK-calm-fox]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;related_decisions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;DEC-023]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;parent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;BACK-epic-lint&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Conventional field names:&lt;/p&gt;</description></item><item><title>software</title><link>https://projectious-work.github.io/processkit/docs/packages/software/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/packages/software/</guid><description>&lt;p&gt;&lt;strong&gt;Intended for:&lt;/strong&gt; software engineering teams building production systems.
&lt;strong&gt;Extends:&lt;/strong&gt; &lt;code&gt;managed&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The &amp;ldquo;serious software team&amp;rdquo; tier. Adds architecture, API, database,
infrastructure, security, observability, and performance skills on top of
managed.&lt;/p&gt;
&lt;h2 id="highlights"&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Architecture:&lt;/strong&gt; &lt;code&gt;software-architecture&lt;/code&gt;, &lt;code&gt;system-design&lt;/code&gt;,
&lt;code&gt;domain-driven-design&lt;/code&gt;, &lt;code&gt;event-driven-architecture&lt;/code&gt;, &lt;code&gt;concurrency-patterns&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API:&lt;/strong&gt; &lt;code&gt;api-design&lt;/code&gt;, &lt;code&gt;graphql-patterns&lt;/code&gt;, &lt;code&gt;grpc-protobuf&lt;/code&gt;, &lt;code&gt;webhook-integration&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Database:&lt;/strong&gt; &lt;code&gt;database-modeling&lt;/code&gt;, &lt;code&gt;database-migration&lt;/code&gt;, &lt;code&gt;sql-patterns&lt;/code&gt;,
&lt;code&gt;sql-style-guide&lt;/code&gt;, &lt;code&gt;nosql-patterns&lt;/code&gt;, &lt;code&gt;caching-strategies&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Infrastructure:&lt;/strong&gt; &lt;code&gt;ci-cd-setup&lt;/code&gt;, &lt;code&gt;container-orchestration&lt;/code&gt;,
&lt;code&gt;dockerfile-review&lt;/code&gt;, &lt;code&gt;kubernetes-basics&lt;/code&gt;, &lt;code&gt;terraform-basics&lt;/code&gt;,
&lt;code&gt;linux-administration&lt;/code&gt;, &lt;code&gt;dns-networking&lt;/code&gt;, &lt;code&gt;shell-scripting&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Security:&lt;/strong&gt; &lt;code&gt;auth-patterns&lt;/code&gt;, &lt;code&gt;secret-management&lt;/code&gt;, &lt;code&gt;secure-coding&lt;/code&gt;,
&lt;code&gt;threat-modeling&lt;/code&gt;, &lt;code&gt;dependency-audit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Observability:&lt;/strong&gt; &lt;code&gt;logging-strategy&lt;/code&gt;, &lt;code&gt;metrics-monitoring&lt;/code&gt;,
&lt;code&gt;alerting-oncall&lt;/code&gt;, &lt;code&gt;distributed-tracing&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Performance:&lt;/strong&gt; &lt;code&gt;performance-profiling&lt;/code&gt;, &lt;code&gt;load-testing&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="when-to-upgrade"&gt;When to upgrade&lt;/h2&gt;
&lt;p&gt;Only if you also need design, mobile, frontend framework skills → &lt;code&gt;product&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Infrastructure Skills</title><link>https://projectious-work.github.io/processkit/docs/skills/catalog/infrastructure/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/skills/catalog/infrastructure/</guid><description>&lt;p&gt;Skills for containers, orchestration, networking, system administration, and CI/CD.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="dockerfile-review"&gt;dockerfile-review&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Dockerfile best practices review &amp;ndash; layer optimization, caching, security, image size. Use when writing or reviewing Dockerfiles.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Triggers:&lt;/strong&gt; When the user asks to review a Dockerfile, optimize an image, or says &amp;ldquo;why is my image so big?&amp;rdquo;, &amp;ldquo;is this Dockerfile correct?&amp;rdquo;, or &amp;ldquo;help me with Docker&amp;rdquo;.
&lt;strong&gt;Tools:&lt;/strong&gt; None
&lt;strong&gt;References:&lt;/strong&gt; None&lt;/p&gt;
&lt;p&gt;Key capabilities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Layer optimization: combine related &lt;code&gt;RUN&lt;/code&gt; commands, order from least to most frequently changing&lt;/li&gt;
&lt;li&gt;Caching: copy dependency manifests first, install, then copy source&lt;/li&gt;
&lt;li&gt;Security: don&amp;rsquo;t run as root, never &lt;code&gt;COPY&lt;/code&gt; secrets, pin base images with digest, remove package caches&lt;/li&gt;
&lt;li&gt;Size reduction: slim/alpine base images, multi-stage builds, &lt;code&gt;--no-install-recommends&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Correctness: use &lt;code&gt;COPY&lt;/code&gt; over &lt;code&gt;ADD&lt;/code&gt;, set &lt;code&gt;WORKDIR&lt;/code&gt; instead of &lt;code&gt;cd&lt;/code&gt;, exec form for &lt;code&gt;CMD&lt;/code&gt;/&lt;code&gt;ENTRYPOINT&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;details&gt;&lt;summary&gt;Example usage&lt;/summary&gt;
&lt;p&gt;User says &amp;ldquo;Review my Dockerfile.&amp;rdquo; The agent reads it and identifies that dependency installation and source copy are in the same layer (cache-busting), apt lists aren&amp;rsquo;t cleaned up, and the container runs as root. Provides specific fixes for each issue.&lt;/p&gt;</description></item><item><title>research</title><link>https://projectious-work.github.io/processkit/docs/packages/research/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/packages/research/</guid><description>&lt;p&gt;&lt;strong&gt;Intended for:&lt;/strong&gt; research teams, data science projects, ML engineering.
&lt;strong&gt;Extends:&lt;/strong&gt; &lt;code&gt;managed&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Managed plus data, ML, AI, and research-documentation skills.&lt;/p&gt;
&lt;h2 id="highlights"&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Data:&lt;/strong&gt; &lt;code&gt;data-science&lt;/code&gt;, &lt;code&gt;data-pipeline&lt;/code&gt;, &lt;code&gt;data-quality&lt;/code&gt;,
&lt;code&gt;data-visualization&lt;/code&gt;, &lt;code&gt;feature-engineering&lt;/code&gt;, &lt;code&gt;pandas-polars&lt;/code&gt;,
&lt;code&gt;database-modeling&lt;/code&gt;, &lt;code&gt;sql-patterns&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI/ML:&lt;/strong&gt; &lt;code&gt;ai-fundamentals&lt;/code&gt;, &lt;code&gt;ml-pipeline&lt;/code&gt;, &lt;code&gt;prompt-engineering&lt;/code&gt;,
&lt;code&gt;llm-evaluation&lt;/code&gt;, &lt;code&gt;embedding-vectordb&lt;/code&gt;, &lt;code&gt;rag-engineering&lt;/code&gt;, &lt;code&gt;code-generation&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Research authoring:&lt;/strong&gt; &lt;code&gt;latex-authoring&lt;/code&gt;, &lt;code&gt;documentation&lt;/code&gt;,
&lt;code&gt;infographics&lt;/code&gt;, &lt;code&gt;excalidraw&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Infrastructure bits research projects touch:&lt;/strong&gt; &lt;code&gt;shell-scripting&lt;/code&gt;,
&lt;code&gt;container-orchestration&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="source"&gt;Source&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/projectious-work/processkit/blob/main/src/packages/research.yaml" rel="noopener"&gt;&lt;code&gt;src/packages/research.yaml&lt;/code&gt;&lt;/a&gt;
&lt;/p&gt;</description></item><item><title>v2 Contracts</title><link>https://projectious-work.github.io/processkit/docs/reference/v2-contracts/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/reference/v2-contracts/</guid><description>&lt;p&gt;SmoothTiger/SmoothRiver v2 keeps durable facts in existing entity
primitives and uses projection skills for runtime files. The source of
truth remains processkit context; generated files are checked against
that source.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Metric&lt;/code&gt;, &lt;code&gt;Model&lt;/code&gt;, &lt;code&gt;Process&lt;/code&gt;, &lt;code&gt;Schedule&lt;/code&gt;, and &lt;code&gt;StateMachine&lt;/code&gt; are legacy
v1 migration-source kinds, not shipped v2 entity primitives. Model
selection uses model-recommender roster/configuration data. Process
definitions are Artifacts plus process-instance WorkItems. Schedule
semantics use &lt;code&gt;Binding(type=time-window)&lt;/code&gt;. Runtime state-machine YAML
files remain implementation contracts, not user-authored StateMachine
entities.&lt;/p&gt;</description></item><item><title>Architecture Skills</title><link>https://projectious-work.github.io/processkit/docs/skills/catalog/architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/skills/catalog/architecture/</guid><description>&lt;p&gt;Skills for software architecture, design patterns, and system design.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="software-architecture"&gt;software-architecture&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Analyzes codebases for architectural patterns and quality. Use when designing systems, creating ADRs, reviewing structure, or generating architecture diagrams.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Triggers:&lt;/strong&gt; Designing systems, creating ADRs, reviewing code structure, generating C4 diagrams, applying SOLID/DRY/KISS principles
&lt;strong&gt;Tools:&lt;/strong&gt; None
&lt;strong&gt;References:&lt;/strong&gt; &lt;code&gt;patterns.md&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Key capabilities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Analyze existing architecture by mapping module organization, dependency directions, and identifying violations (circular deps, layer skipping, leaky abstractions)&lt;/li&gt;
&lt;li&gt;Suggest architecture patterns matched to project type (layered, hexagonal, modular monolith, microservices, pipe-and-filter, event-driven)&lt;/li&gt;
&lt;li&gt;Create Architecture Decision Records (ADRs) with context, decision, and consequences&lt;/li&gt;
&lt;li&gt;Review code for architectural violations: god modules, tight coupling, missing boundaries&lt;/li&gt;
&lt;li&gt;Generate C4 diagrams (System Context, Container, Component) using Mermaid syntax&lt;/li&gt;
&lt;/ul&gt;
&lt;details&gt;&lt;summary&gt;Example usage&lt;/summary&gt;
&lt;p&gt;&amp;ldquo;Review this project&amp;rsquo;s architecture&amp;rdquo; &amp;ndash; Maps the dependency graph, identifies that controllers directly import database models (layer violation), suggests introducing a service layer with repository traits, and provides a C4 Level 3 component diagram of the proposed structure.&lt;/p&gt;</description></item><item><title>product</title><link>https://projectious-work.github.io/processkit/docs/packages/product/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/packages/product/</guid><description>&lt;p&gt;&lt;strong&gt;Intended for:&lt;/strong&gt; end-to-end product development teams.
&lt;strong&gt;Extends:&lt;/strong&gt; &lt;code&gt;software&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The most comprehensive tier. Software plus design, mobile, framework,
and product-specific skills. Use when engineering, design, research, and
operations all live in the same repository.&lt;/p&gt;
&lt;h2 id="what-product-adds-on-top-of-software"&gt;What product adds on top of software&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Design:&lt;/strong&gt; &lt;code&gt;frontend-design&lt;/code&gt;, &lt;code&gt;mobile-app-design&lt;/code&gt;, &lt;code&gt;logo-design&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Framework:&lt;/strong&gt; &lt;code&gt;fastapi-patterns&lt;/code&gt;, &lt;code&gt;tailwind&lt;/code&gt;, &lt;code&gt;typescript-patterns&lt;/code&gt;,
&lt;code&gt;flutter-development&lt;/code&gt;, &lt;code&gt;reflex-python&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data subset:&lt;/strong&gt; &lt;code&gt;data-visualization&lt;/code&gt;, &lt;code&gt;feature-engineering&lt;/code&gt;,
&lt;code&gt;ai-fundamentals&lt;/code&gt;, &lt;code&gt;prompt-engineering&lt;/code&gt;, &lt;code&gt;llm-evaluation&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Language conventions:&lt;/strong&gt; &lt;code&gt;python-best-practices&lt;/code&gt;, &lt;code&gt;rust-conventions&lt;/code&gt;,
&lt;code&gt;go-conventions&lt;/code&gt;, &lt;code&gt;java-patterns&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Documentation:&lt;/strong&gt; &lt;code&gt;latex-authoring&lt;/code&gt;, &lt;code&gt;excalidraw&lt;/code&gt;, &lt;code&gt;infographics&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Product ops:&lt;/strong&gt; &lt;code&gt;seo-optimization&lt;/code&gt;, &lt;code&gt;agent-management&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="when-not-to-use-product"&gt;When NOT to use product&lt;/h2&gt;
&lt;p&gt;If you don&amp;rsquo;t actually need design, mobile, or framework skills — stick
with &lt;code&gt;software&lt;/code&gt;. The product tier is large and expecting every team to
manage it is false economy.&lt;/p&gt;</description></item><item><title>Design &amp; Visual Skills</title><link>https://projectious-work.github.io/processkit/docs/skills/catalog/design/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/skills/catalog/design/</guid><description>&lt;p&gt;Skills for frontend development, visual design, and creative production.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="excalidraw"&gt;excalidraw&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Generates Excalidraw diagrams programmatically as JSON. Use when creating architecture diagrams, flowcharts, or hand-drawn-style visuals for documentation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Triggers:&lt;/strong&gt; Creating architecture diagrams, flowcharts, system diagrams, or hand-drawn-style visuals for documentation
&lt;strong&gt;Tools:&lt;/strong&gt; None
&lt;strong&gt;References:&lt;/strong&gt; &lt;code&gt;json-schema.md&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Key capabilities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generate Excalidraw JSON files with proper structure (elements, appState, version 2 format)&lt;/li&gt;
&lt;li&gt;Create element types: rectangles, ellipses, diamonds, lines, arrows, text, with configurable styles&lt;/li&gt;
&lt;li&gt;Bind text labels to shapes for labeled diagrams&lt;/li&gt;
&lt;li&gt;Follow layout guidelines: grid alignment (multiples of 20), consistent spacing, readable font sizes&lt;/li&gt;
&lt;li&gt;Apply a semantic color palette (primary, secondary, success, warning, danger, neutral)&lt;/li&gt;
&lt;li&gt;Produce architecture diagrams, flowcharts, and sequence-style diagrams&lt;/li&gt;
&lt;li&gt;Embed in documentation as &lt;code&gt;.excalidraw&lt;/code&gt;, SVG, or PNG&lt;/li&gt;
&lt;/ul&gt;
&lt;details&gt;&lt;summary&gt;Example usage&lt;/summary&gt;
&lt;p&gt;&amp;ldquo;Create an architecture diagram for a web app with React frontend, Node API, and PostgreSQL&amp;rdquo; &amp;ndash; Generates Excalidraw JSON with three labeled rectangles arranged left-to-right, connected by arrows labeled &amp;ldquo;HTTP/REST&amp;rdquo; and &amp;ldquo;SQL&amp;rdquo;, using blue for frontend, green for API, yellow for database.&lt;/p&gt;</description></item><item><title>Data &amp; Analytics Skills</title><link>https://projectious-work.github.io/processkit/docs/skills/catalog/data/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/skills/catalog/data/</guid><description>&lt;p&gt;Skills for data science, data engineering, and analytics workflows.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="data-science"&gt;data-science&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Data analysis workflow from import through modeling and communication. Covers tidy data, EDA, statistical reasoning, and visualization. Use when analyzing datasets, building statistical models, exploring data, or communicating findings.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Triggers:&lt;/strong&gt; Analyzing datasets, exploring data, building statistical models, creating visualizations, cleaning messy data, communicating findings
&lt;strong&gt;Tools:&lt;/strong&gt; &lt;code&gt;Bash(python:*) Bash(jupyter:*) Read Write&lt;/code&gt;
&lt;strong&gt;References:&lt;/strong&gt; &lt;code&gt;tidy-data-principles.md&lt;/code&gt;, &lt;code&gt;statistical-methods.md&lt;/code&gt;, &lt;code&gt;visualization-guidelines.md&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Key capabilities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Import and clean data: inspect shape/dtypes/nulls, handle missing data explicitly, parse dates, validate assumptions&lt;/li&gt;
&lt;li&gt;Reshape data to tidy form (one variable per column, one observation per row) using melt/pivot&lt;/li&gt;
&lt;li&gt;Conduct exploratory data analysis: univariate distributions, bivariate relationships, outlier detection, groupby aggregations&lt;/li&gt;
&lt;li&gt;Apply statistical reasoning: state the question first, check assumptions, report effect sizes alongside p-values, use confidence intervals&lt;/li&gt;
&lt;li&gt;Perform feature selection: remove zero-variance features, handle multicollinearity, use domain knowledge then data-driven methods&lt;/li&gt;
&lt;li&gt;Follow model selection workflow: start simple (baseline), add complexity only when justified, use cross-validation, document decisions&lt;/li&gt;
&lt;li&gt;Visualize with best practices: titles, axis labels, colorblind-friendly palettes, annotations, publication-quality export&lt;/li&gt;
&lt;li&gt;Communicate results: lead with findings, plain language, show uncertainty, include actionable &amp;ldquo;so what&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;details&gt;&lt;summary&gt;Example usage&lt;/summary&gt;
&lt;p&gt;&amp;ldquo;I have a CSV of customer transactions. Help me understand churn patterns.&amp;rdquo; &amp;ndash; Loads the CSV, prints shape/dtypes/nulls, creates tidy time-series per customer, runs EDA with churn-rate distributions and cohort analysis, tests whether usage frequency differs between churned/retained groups (t-test with effect size), and produces annotated visualizations summarizing the key drivers.&lt;/p&gt;</description></item><item><title>AI &amp; ML Skills</title><link>https://projectious-work.github.io/processkit/docs/skills/catalog/ai-ml/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/skills/catalog/ai-ml/</guid><description>&lt;p&gt;Skills for AI/ML development, RAG pipelines, prompt engineering, and model evaluation.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="ai-fundamentals"&gt;ai-fundamentals&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Core ML/AI concepts including model types, training pipelines, evaluation metrics, and neural network architectures. Use when explaining AI concepts, choosing model approaches, designing ML solutions, or reviewing AI-related code.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Triggers:&lt;/strong&gt; Explaining ML/AI concepts, choosing model architectures, designing training pipelines, selecting evaluation metrics, debugging model performance (overfitting, leakage, class imbalance)
&lt;strong&gt;Tools:&lt;/strong&gt; None
&lt;strong&gt;References:&lt;/strong&gt; &lt;code&gt;ml-concepts.md&lt;/code&gt;, &lt;code&gt;math-foundations.md&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Key capabilities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Classify problems by learning paradigm: supervised, unsupervised, reinforcement, self-supervised&lt;/li&gt;
&lt;li&gt;Match model types to problems: linear models for baselines, tree-based (XGBoost/LightGBM) for tabular data, neural networks for unstructured data, probabilistic models for uncertainty&lt;/li&gt;
&lt;li&gt;Design correct training pipelines: data prep, train/val/test split before preprocessing, feature engineering, training, hyperparameter tuning, regularization, final evaluation&lt;/li&gt;
&lt;li&gt;Select evaluation metrics by task: F1/AUC-ROC for classification, RMSE/MAE for regression, NDCG/MAP for ranking, BLEU/ROUGE for generation&lt;/li&gt;
&lt;li&gt;Understand neural network architectures: MLP, CNN, RNN/LSTM, Transformer, GAN, VAE, diffusion models&lt;/li&gt;
&lt;li&gt;Explain modern LLM concepts: attention, tokenization, pre-training + fine-tuning, RLHF, prompting strategies, scaling laws&lt;/li&gt;
&lt;li&gt;Identify common pitfalls: data leakage, overfitting, underfitting, class imbalance, distribution shift, metric mismatch&lt;/li&gt;
&lt;/ul&gt;
&lt;details&gt;&lt;summary&gt;Example usage&lt;/summary&gt;
&lt;p&gt;&amp;ldquo;Choose an approach for tabular customer churn prediction&amp;rdquo; &amp;ndash; With 50K labeled rows of structured data, recommends gradient-boosted trees (XGBoost/LightGBM) with stratified k-fold cross-validation for the imbalanced target. Reports F1 and AUC-ROC. Baselines with logistic regression first, only considers neural approaches if tree models plateau.&lt;/p&gt;</description></item><item><title>API &amp; Integration Skills</title><link>https://projectious-work.github.io/processkit/docs/skills/catalog/api/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/skills/catalog/api/</guid><description>&lt;p&gt;Skills for API design, protocol patterns, and system integration.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="api-design"&gt;api-design&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;REST API design including resource naming, HTTP methods, status codes, pagination, versioning, and OpenAPI specs. Use when designing APIs, reviewing API contracts, or writing OpenAPI/Swagger documentation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Triggers:&lt;/strong&gt; Designing a new REST API or extending an existing one, reviewing API contracts, writing OpenAPI/Swagger docs, choosing pagination or versioning strategies, defining error response formats.
&lt;strong&gt;Tools:&lt;/strong&gt; &lt;code&gt;Bash&lt;/code&gt; &lt;code&gt;Read&lt;/code&gt; &lt;code&gt;Write&lt;/code&gt;
&lt;strong&gt;References:&lt;/strong&gt; &lt;code&gt;rest-conventions.md&lt;/code&gt;, &lt;code&gt;openapi-patterns.md&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Key capabilities:&lt;/p&gt;</description></item><item><title>processkit v1.0 Base Context</title><link>https://projectious-work.github.io/processkit/docs/development/analysis/base-context/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/development/analysis/base-context/</guid><description>&lt;p&gt;Created: 2026-07-04&lt;/p&gt;
&lt;p&gt;This historical base context was created for the processkit v1.0 redesign.
It was built from the earlier &lt;code&gt;projectious-work/processkit&lt;/code&gt; repository,
cloned locally at:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Source URL: &lt;a href="https://github.com/projectious-work/processkit" rel="noopener"&gt;https://github.com/projectious-work/processkit&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Analyzed commit: &lt;code&gt;6a9a175f95c42dd76e23488feca42e3d05526b98&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Local clone: &lt;code&gt;/tmp/processkit-original&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal is to preserve the proven v0.x product target while creating a
clean basis for processkit v1.0 improvement briefings.&lt;/p&gt;
&lt;h2 id="current-guiding-briefing"&gt;Current Guiding Briefing&lt;/h2&gt;
&lt;p&gt;The current guiding briefing is &lt;code&gt;processkit-v1.0-rfc-draft.md&lt;/code&gt;, analyzed
in the &lt;a href="https://projectious-work.github.io/processkit/docs/development/analysis/processkit-v1-rfc-analysis/"&gt;processkit v1.0 RFC analysis&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;Conflict rule:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;preserve the stable product target captured in this base context&lt;/li&gt;
&lt;li&gt;use the v1.0 RFC for ontology, branch, release, schema-composition,
validation, indexing, and cutover-gate direction&lt;/li&gt;
&lt;li&gt;treat &lt;code&gt;concept-mapping-2026-05-16.md&lt;/code&gt; as historical input where it
agrees with the RFC, not as current guidance where it conflicts&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="current-repository-status"&gt;Current Repository Status&lt;/h2&gt;
&lt;p&gt;At the time of this analysis, the workspace was a fresh
aibox/processkit-derived project scaffold, not yet a rebuilt processkit
source tree.&lt;/p&gt;</description></item><item><title>Product Specification</title><link>https://projectious-work.github.io/processkit/docs/development/product-specification/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/development/product-specification/</guid><description>&lt;h2 id="purpose"&gt;Purpose&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h2 id="primary-users"&gt;Primary Users&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Project owners who want inspectable, durable AI-assisted project
memory.&lt;/li&gt;
&lt;li&gt;Maintainers who need decisions, work, artifacts, and migrations to be
traceable.&lt;/li&gt;
&lt;li&gt;AI coding agents that need reliable task context and write-safe MCP
tools.&lt;/li&gt;
&lt;li&gt;Agent runtime integrators that need a provider-neutral process layer.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="problems-to-solve"&gt;Problems To Solve&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Agent sessions lose project context across turns and tools.&lt;/li&gt;
&lt;li&gt;Important decisions and rationale are buried in chat.&lt;/li&gt;
&lt;li&gt;Work state, review state, and acceptance criteria are not consistently
queryable.&lt;/li&gt;
&lt;li&gt;Multi-agent teams need roles, skills, handoffs, gates, and logs.&lt;/li&gt;
&lt;li&gt;Markdown knowledge is readable but often lacks lifecycle semantics.&lt;/li&gt;
&lt;li&gt;Service-owned metadata systems are less portable than git-backed
files.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="product-goals"&gt;Product Goals&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Keep project memory file-backed, git-native, and human-inspectable.&lt;/li&gt;
&lt;li&gt;Make process writes happen through validated MCP tools.&lt;/li&gt;
&lt;li&gt;Support typed entities, state machines, and relation queries.&lt;/li&gt;
&lt;li&gt;Implement the RFC&amp;rsquo;s 89-concept T/P/D/C ontology target.&lt;/li&gt;
&lt;li&gt;Preserve auditability through structured event logs.&lt;/li&gt;
&lt;li&gt;Support provider-neutral roles, team members, model routing, and
skills.&lt;/li&gt;
&lt;li&gt;Export and ingest OKF bundles without weakening canonical semantics.&lt;/li&gt;
&lt;li&gt;Integrate with external agent runtimes instead of replacing them.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="non-goals"&gt;Non-Goals&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build a general agent runtime.&lt;/li&gt;
&lt;li&gt;Build a vector database.&lt;/li&gt;
&lt;li&gt;Build a general data catalog.&lt;/li&gt;
&lt;li&gt;Make OKF the canonical internal model.&lt;/li&gt;
&lt;li&gt;Replace GitHub, issue trackers, CI, or code review systems.&lt;/li&gt;
&lt;li&gt;Optimize for synthetic coding-agent benchmarks as the product goal.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="core-workflows"&gt;Core Workflows&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Capture work as typed WorkItems with acceptance criteria.&lt;/li&gt;
&lt;li&gt;Record decisions with context, alternatives, rationale, and
consequences.&lt;/li&gt;
&lt;li&gt;Attach artifacts and supporting analysis to work and decisions.&lt;/li&gt;
&lt;li&gt;Route tasks to roles, team members, skills, and model classes.&lt;/li&gt;
&lt;li&gt;Apply gates for approval, policy, evaluation, and release checks.&lt;/li&gt;
&lt;li&gt;Query by interface rather than forcing agents to guess concrete
entity kinds.&lt;/li&gt;
&lt;li&gt;Preserve process evidence in structured LogEntries.&lt;/li&gt;
&lt;li&gt;Export selected knowledge as OKF for open exchange.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="success-criteria"&gt;Success Criteria&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A maintainer can understand project state from files and docs without
replaying chat history.&lt;/li&gt;
&lt;li&gt;An agent can create, transition, and query process entities through MCP
tools without hand-editing canonical context files.&lt;/li&gt;
&lt;li&gt;A real project cycle can run through the v1.0 alpha model.&lt;/li&gt;
&lt;li&gt;Automated fixture tests cover schema generation, MCP contracts,
indexing, migrations, and pk-doctor before manual dogfood begins.&lt;/li&gt;
&lt;li&gt;OKF export produces a conformant bundle for public consumption.&lt;/li&gt;
&lt;li&gt;Existing v0.x evidence can migrate or be explicitly preserved.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>WorkItem</title><link>https://projectious-work.github.io/processkit/docs/primitives/workitem/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/workitem/</guid><description>&lt;p&gt;A unit of work — task, story, bug, epic, spike, or chore. The primary
work-tracking primitive in processkit.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ID prefix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;BACK&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;State machine&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;workitem&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP server&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;workitem-management&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skill&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;workitem-management&lt;/code&gt; (Layer 2)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="state-machine"&gt;State machine&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;backlog → in-progress → review → done
 ↕
 blocked
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;All states can transition to &lt;code&gt;cancelled&lt;/code&gt;. &lt;code&gt;done&lt;/code&gt; and &lt;code&gt;cancelled&lt;/code&gt; are
terminal.&lt;/p&gt;
&lt;h2 id="fields"&gt;Fields&lt;/h2&gt;
&lt;h3 id="required"&gt;Required&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;title&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string (1–200)&lt;/td&gt;
 &lt;td&gt;Short, actionable title&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;state&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Current state&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="optional"&gt;Optional&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Long-form description, acceptance criteria&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;enum&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;task&lt;/code&gt; · &lt;code&gt;story&lt;/code&gt; · &lt;code&gt;bug&lt;/code&gt; · &lt;code&gt;epic&lt;/code&gt; · &lt;code&gt;spike&lt;/code&gt; · &lt;code&gt;chore&lt;/code&gt; (default: &lt;code&gt;task&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;priority&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;enum&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;critical&lt;/code&gt; · &lt;code&gt;high&lt;/code&gt; · &lt;code&gt;medium&lt;/code&gt; · &lt;code&gt;low&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;assignee&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;ACTOR-*&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Responsible actor&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;parent&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;BACK-*&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Parent work item (for subtasks / epics)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;children&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;BACK-*[]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Child work item IDs&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;blocks&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;BACK-*[]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Items this one blocks&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;blocked_by&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;BACK-*[]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Items blocking this one&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;related_decisions&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;DEC-*[]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Decisions that motivated or govern this item&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Scope ID (sprint, milestone, release)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;estimate&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;object&lt;/td&gt;
 &lt;td&gt;Freeform effort estimate&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;started_at&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;datetime&lt;/td&gt;
 &lt;td&gt;Set automatically on first &lt;code&gt;in-progress&lt;/code&gt; transition&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;completed_at&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;datetime&lt;/td&gt;
 &lt;td&gt;Set automatically on &lt;code&gt;done&lt;/code&gt; or &lt;code&gt;cancelled&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="example"&gt;Example&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;apiVersion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;processkit.projectious.work/v1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;WorkItem&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;BACK-20260411_0900-BoldVale-fts5-full-text-search&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;created&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2026-04-11T09:00:00Z&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;spec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Add FTS5 full-text search to SQLite index&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;backlog&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;story&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;priority&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;medium&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; Implement FTS5 trigram tokeniser in index.py so agents can search
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; entity body text, not just frontmatter fields.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;related_decisions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;DEC-20260409_1200-SwiftPeak-sqlite-for-index&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;All state transitions are auto-logged via &lt;code&gt;event-log&lt;/code&gt; — no manual log
call needed.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;parent&lt;/code&gt; / &lt;code&gt;children&lt;/code&gt; to model epics and subtasks; keep the epic
type &lt;code&gt;epic&lt;/code&gt; and subtask types &lt;code&gt;task&lt;/code&gt; or &lt;code&gt;story&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scope&lt;/code&gt; is a free string; bind to a Scope entity via &lt;code&gt;binding-management&lt;/code&gt;
when you need richer scope tracking (dates, goals, state).&lt;/li&gt;
&lt;li&gt;Query by state, type, priority, or assignee via &lt;code&gt;query_workitems&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>LogEntry</title><link>https://projectious-work.github.io/processkit/docs/primitives/logentry/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/logentry/</guid><description>&lt;p&gt;An immutable, append-only record of something that happened. The audit
trail primitive — never updated or deleted after creation.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ID prefix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;LOG&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;State machine&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;none (immutable)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP server&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;event-log&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skill&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;event-log&lt;/code&gt; (Layer 0)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="fields"&gt;Fields&lt;/h2&gt;
&lt;h3 id="required"&gt;Required&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;event_type&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Machine-readable event type (e.g. &lt;code&gt;workitem.created&lt;/code&gt;, &lt;code&gt;gate.passed&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;actor&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;ID of actor who caused the event&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;timestamp&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;datetime&lt;/td&gt;
 &lt;td&gt;When the event occurred (ISO 8601 UTC)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="optional"&gt;Optional&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;subject&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;ID of the entity the event concerns&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;subject_kind&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Kind of subject entity (fast filtering)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;summary&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;One-line human-readable summary&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;details&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;object&lt;/td&gt;
 &lt;td&gt;Event-specific structured payload&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;correlation_id&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Links related events (e.g. a workflow run)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="example"&gt;Example&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;apiVersion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;processkit.projectious.work/v1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;LogEntry&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;LOG-20260411_0901-SteadyWren-workitem-transitioned&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;created&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2026-04-11T09:01:00Z&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;spec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;event_type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;workitem.transitioned&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;actor&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;ACTOR-claude&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2026-04-11T09:01:00Z&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;subject&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;BACK-20260411_0900-BoldVale-fts5-full-text-search&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;subject_kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;WorkItem&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;summary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;WorkItem transitioned from backlog to in-progress&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;details&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;from_state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;backlog&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;to_state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;in-progress&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="auto-logging"&gt;Auto-logging&lt;/h2&gt;
&lt;p&gt;Entity-mutating MCP servers (&lt;code&gt;create_*&lt;/code&gt;, &lt;code&gt;transition_*&lt;/code&gt;, &lt;code&gt;link_*&lt;/code&gt;) append a
LogEntry automatically — callers do not need to call &lt;code&gt;log_event&lt;/code&gt; separately.&lt;/p&gt;</description></item><item><title>Security Skills</title><link>https://projectious-work.github.io/processkit/docs/skills/catalog/security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/skills/catalog/security/</guid><description>&lt;p&gt;Skills for application security, authentication, and threat analysis.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="dependency-audit"&gt;dependency-audit&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Audits project dependencies for vulnerabilities and outdated packages. Use when checking security posture or planning dependency updates.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Triggers:&lt;/strong&gt; Checking dependencies, auditing security, updating packages, verifying dependency health before a release.
&lt;strong&gt;Tools:&lt;/strong&gt; None
&lt;strong&gt;References:&lt;/strong&gt; None&lt;/p&gt;
&lt;p&gt;Key capabilities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multi-ecosystem audit tool selection (cargo audit, pip-audit, npm audit, govulncheck)&lt;/li&gt;
&lt;li&gt;Severity-based triage: critical/high (fix immediately), medium (this sprint), low (when convenient)&lt;/li&gt;
&lt;li&gt;Update strategy: one dependency at a time, full test suite after each, changelog review&lt;/li&gt;
&lt;li&gt;Outdated package detection (cargo outdated, pip list &amp;ndash;outdated, npm outdated)&lt;/li&gt;
&lt;li&gt;Ongoing maintenance: monthly reviews, Dependabot/Renovate automation, pinned version documentation&lt;/li&gt;
&lt;/ul&gt;
&lt;details&gt;&lt;summary&gt;Example usage&lt;/summary&gt;
&lt;p&gt;User asks &amp;ldquo;Are my dependencies secure?&amp;rdquo; The agent runs the appropriate audit tool for the project&amp;rsquo;s package manager, summarizes findings by severity, and recommends specific version bumps for vulnerable packages. Flags any dependencies with no maintained alternatives.&lt;/p&gt;</description></item><item><title>DecisionRecord</title><link>https://projectious-work.github.io/processkit/docs/primitives/decisionrecord/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/decisionrecord/</guid><description>&lt;p&gt;A significant choice — architectural, product, or process — recorded with
its context, rationale, and alternatives. The ADR (Architecture Decision
Record) pattern as a first-class entity.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ID prefix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;DEC&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;State machine&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;decisionrecord&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP server&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;decision-record&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skill&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;decision-record&lt;/code&gt; (Layer 2)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="state-machine"&gt;State machine&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;proposed → accepted → superseded
 ↘ rejected
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;accepted&lt;/code&gt;, &lt;code&gt;rejected&lt;/code&gt;, and &lt;code&gt;superseded&lt;/code&gt; are terminal.&lt;/p&gt;
&lt;h2 id="fields"&gt;Fields&lt;/h2&gt;
&lt;h3 id="required"&gt;Required&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;title&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string (1–200)&lt;/td&gt;
 &lt;td&gt;Short declarative title&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;state&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Current state&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;decision&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;The chosen option, stated clearly&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="optional"&gt;Optional&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;context&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Situation that prompted the decision&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;rationale&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Why this option was chosen&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;alternatives&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;object[]&lt;/td&gt;
 &lt;td&gt;Each with &lt;code&gt;option&lt;/code&gt; (required) and &lt;code&gt;rejected_because&lt;/code&gt; (optional)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;consequences&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Known or expected downstream effects&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;deciders&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;ACTOR-*[]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;People / agents who made the decision&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;supersedes&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;DEC-*&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Prior decision this replaces&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;superseded_by&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;DEC-*&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Later decision that replaces this one&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;related_workitems&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;BACK-*[]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Work items that motivated or implement this decision&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;decided_at&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;datetime&lt;/td&gt;
 &lt;td&gt;When the decision was finalised&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="example"&gt;Example&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;apiVersion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;processkit.projectious.work/v1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;DecisionRecord&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;DEC-20260411_0902-SwiftPeak-sqlite-for-index&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;created&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2026-04-11T09:02:00Z&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;spec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Use SQLite as the entity index store&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;accepted&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;decision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Use SQLite with WAL mode as the backing store for the index.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;context&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; We need a queryable index over all context/ entities that agents can
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; use without doing filesystem walks.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;rationale&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; SQLite is zero-config, ships as a Python built-in, and supports
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; full-text search via FTS5. No external service needed.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;alternatives&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;option&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;PostgreSQL&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;rejected_because&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Requires a running service; too heavy for local dev.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;option&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;DuckDB&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;rejected_because&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;No&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;built-in full-text search; adds a dependency.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;decided_at&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2026-04-09T12:00:00Z&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;supersede_decision&lt;/code&gt; to create a clean supersession chain when a
decision changes — the old record stays as history, the new one links
back via &lt;code&gt;supersedes&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Link decisions to work items with &lt;code&gt;link_decision_to_workitem&lt;/code&gt; to make
the &amp;ldquo;why was this built?&amp;rdquo; trail queryable.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;proposed&lt;/code&gt; is the right starting state for decisions that need
stakeholder sign-off before being acted on.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Observability Skills</title><link>https://projectious-work.github.io/processkit/docs/skills/catalog/observability/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/skills/catalog/observability/</guid><description>&lt;p&gt;Skills for logging, monitoring, tracing, and alerting in production systems.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="logging-strategy"&gt;logging-strategy&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Structured logging strategy including log levels, correlation IDs, context propagation, and PII avoidance. Use when designing logging, reviewing log statements, or setting up log aggregation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Triggers:&lt;/strong&gt; Designing a logging approach, reviewing existing log statements, setting up log aggregation (ELK, Loki, CloudWatch), adding correlation IDs, deciding what to log and what to avoid.
&lt;strong&gt;Tools:&lt;/strong&gt; &lt;code&gt;Bash&lt;/code&gt; &lt;code&gt;Read&lt;/code&gt; &lt;code&gt;Write&lt;/code&gt;
&lt;strong&gt;References:&lt;/strong&gt; &lt;code&gt;structured-logging.md&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Key capabilities:&lt;/p&gt;</description></item><item><title>Artifact</title><link>https://projectious-work.github.io/processkit/docs/primitives/artifact/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/artifact/</guid><description>&lt;p&gt;A completed deliverable — document, dataset, build, diagram, URL,
runbook, slide deck, or any other produced output. A catalogue record,
not a work-tracking entity.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ID prefix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;ART&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;State machine&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;none&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP server&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;artifact-management&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skill&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;artifact-management&lt;/code&gt; (Layer 2)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="two-usage-patterns"&gt;Two usage patterns&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Self-hosted&lt;/strong&gt; — the content lives in the entity file&amp;rsquo;s Markdown body.
&lt;code&gt;location&lt;/code&gt; is omitted or used as an optional secondary pointer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pointer&lt;/strong&gt; — the content lives externally (Figma, Google Drive, S3, a
git path). &lt;code&gt;location&lt;/code&gt; is required; the body may be empty or contain a
summary.&lt;/p&gt;</description></item><item><title>Database Skills</title><link>https://projectious-work.github.io/processkit/docs/skills/catalog/database/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/skills/catalog/database/</guid><description>&lt;p&gt;Skills for SQL, data modeling, NoSQL patterns, and schema migrations.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="sql-patterns"&gt;sql-patterns&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;SQL query patterns, schema design, and optimization. Joins, CTEs, window functions, indexing, and anti-patterns. Use when writing SQL queries, designing schemas, optimizing database performance, or reviewing database code.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Triggers:&lt;/strong&gt; Writing or optimizing SQL queries (joins, CTEs, window functions), designing or reviewing schemas, analyzing EXPLAIN plans, choosing indexing strategies, fixing slow queries, implementing pagination or analytical queries.
&lt;strong&gt;Tools:&lt;/strong&gt; &lt;code&gt;Bash&lt;/code&gt; &lt;code&gt;Read&lt;/code&gt; &lt;code&gt;Write&lt;/code&gt;
&lt;strong&gt;References:&lt;/strong&gt; &lt;code&gt;query-patterns.md&lt;/code&gt;, &lt;code&gt;schema-design.md&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Note</title><link>https://projectious-work.github.io/processkit/docs/primitives/note/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/note/</guid><description>&lt;p&gt;A Zettelkasten capture layer for ideas, observations, and references.
Notes exist on a spectrum from raw capture (fleeting) to permanent
knowledge (insight).&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ID prefix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;NOTE&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;State machine&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;note&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP server&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;note-management&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skill&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;note-management&lt;/code&gt; (Layer 2)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="state-machine"&gt;State machine&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;fleeting → insight
 ↘ promoted (promoted to another entity kind)
 ↘ archived
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;insight&lt;/code&gt;, &lt;code&gt;promoted&lt;/code&gt;, and &lt;code&gt;archived&lt;/code&gt; are terminal.&lt;/p&gt;
&lt;h2 id="note-types-luhmannahrens-taxonomy"&gt;Note types (Luhmann/Ahrens taxonomy)&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;fleeting&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Quick capture, not yet refined — review within a week&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;insight&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Permanent note — self-contained conclusion, part of knowledge base&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;reference&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Literature note — pointer to an external source with summary&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;question&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Open question — may promote to WorkItem (spike) or Discussion&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="fields"&gt;Fields&lt;/h2&gt;
&lt;h3 id="required"&gt;Required&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;title&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string (1–120)&lt;/td&gt;
 &lt;td&gt;Self-contained claim or question — not a topic label&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;body&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;The note content&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;enum&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;fleeting&lt;/code&gt; · &lt;code&gt;insight&lt;/code&gt; · &lt;code&gt;reference&lt;/code&gt; · &lt;code&gt;question&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;state&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Current state&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="optional"&gt;Optional&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;tags&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string[]&lt;/td&gt;
 &lt;td&gt;Freeform tags for discoverability&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;source&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;For &lt;code&gt;reference&lt;/code&gt; notes: URL, book title, or conversation&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;promotes_to&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;object&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;{kind, id}&lt;/code&gt; — target entity when promoted&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;review_due&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;date&lt;/td&gt;
 &lt;td&gt;When the note should be reviewed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;inbox&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;object&lt;/td&gt;
 &lt;td&gt;Hook-inbox status and routing metadata&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;links&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;object[]&lt;/td&gt;
 &lt;td&gt;Typed edges to other Notes (see below)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="hook-inbox"&gt;Hook inbox&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;note-management&lt;/code&gt; MCP server can capture external or
agent-generated interrupts as Notes with &lt;code&gt;spec.inbox&lt;/code&gt;. Inbox items move
through &lt;code&gt;captured&lt;/code&gt;, &lt;code&gt;claimed&lt;/code&gt;, &lt;code&gt;completed&lt;/code&gt;, or &lt;code&gt;failed&lt;/code&gt;, with an
&lt;code&gt;injection_mode&lt;/code&gt; of &lt;code&gt;interrupt&lt;/code&gt;, &lt;code&gt;ambient&lt;/code&gt;, or &lt;code&gt;next-cycle&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Actor</title><link>https://projectious-work.github.io/processkit/docs/primitives/actor/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/actor/</guid><description>&lt;p&gt;A participant in the project — human, AI agent, or automated service.
Actors are assigned to WorkItems, named in DecisionRecords, and bound
to Roles.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ID prefix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;ACTOR&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;State machine&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;none&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP server&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;actor-profile&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skill&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;actor-profile&lt;/code&gt; (Layer 1)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="fields"&gt;Fields&lt;/h2&gt;
&lt;h3 id="required"&gt;Required&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;enum&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;human&lt;/code&gt; · &lt;code&gt;ai-agent&lt;/code&gt; · &lt;code&gt;service&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string (1–200)&lt;/td&gt;
 &lt;td&gt;Display name (for AI agents: model name + version)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="optional"&gt;Optional&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;email&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;email&lt;/td&gt;
 &lt;td&gt;Humans only&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;handle&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;GitHub handle, Slack user, etc.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;expertise&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string[]&lt;/td&gt;
 &lt;td&gt;Tags used by assignment-suggestion logic&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;roles&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;ROLE-*[]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Shortcut for unscoped role assignment&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;preferences&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;object&lt;/td&gt;
 &lt;td&gt;Freeform (commit style, timezone, review style, …)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;active&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;boolean&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;false&lt;/code&gt; = actor has left, no new work assigned (default: &lt;code&gt;true&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;joined_at&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;datetime&lt;/td&gt;
 &lt;td&gt;When actor became part of the project&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;left_at&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;datetime&lt;/td&gt;
 &lt;td&gt;When actor stopped&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="example"&gt;Example&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;apiVersion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;processkit.projectious.work/v1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Actor&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;ACTOR-20260411_0906-SteadyWren-claude&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;created&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2026-04-11T09:06:00Z&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;spec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;ai-agent&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Claude Sonnet 4.6&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;handle&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;claude&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;expertise&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;python, typescript, processkit, documentation]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;active&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;preferences&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;commit_style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;conventional-commits&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;timezone&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;UTC&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Roles are descriptive, not restrictive — processkit does not enforce
RBAC. Use &lt;code&gt;roles&lt;/code&gt; for assignment-suggestion only.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;deactivate_actor&lt;/code&gt; (not manual editing) to mark an actor as
&lt;code&gt;active: false&lt;/code&gt;; it keeps the index consistent.&lt;/li&gt;
&lt;li&gt;For scoped or time-bounded role assignments, use a &lt;strong&gt;Binding&lt;/strong&gt; instead
of the &lt;code&gt;roles&lt;/code&gt; shortcut field.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Role</title><link>https://projectious-work.github.io/processkit/docs/primitives/role/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/role/</guid><description>&lt;p&gt;A named set of responsibilities. Roles are descriptive — they document
who is expected to do what, but do not enforce access control.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ID prefix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;ROLE&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;State machine&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;none&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP server&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;role-management&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skill&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;role-management&lt;/code&gt; (Layer 1)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="fields"&gt;Fields&lt;/h2&gt;
&lt;h3 id="required"&gt;Required&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string (1–100)&lt;/td&gt;
 &lt;td&gt;Kebab-case identifier matching the &lt;code&gt;metadata.id&lt;/code&gt; suffix&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;One-sentence purpose statement&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="optional"&gt;Optional&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;responsibilities&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string[]&lt;/td&gt;
 &lt;td&gt;Imperative bullet points — concrete, not vague&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;skills_required&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string[]&lt;/td&gt;
 &lt;td&gt;Skill IDs or names (advisory, not enforced)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;default_scope&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;enum&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;project&lt;/code&gt; · &lt;code&gt;sprint&lt;/code&gt; · &lt;code&gt;permanent&lt;/code&gt; — assumed scope when binding without an explicit one&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;supersedes&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;ROLE-*&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Role ID this one replaces&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="example"&gt;Example&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;apiVersion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;processkit.projectious.work/v1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Role&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;ROLE-20260411_0907-ClearOak-tech-lead&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;created&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2026-04-11T09:07:00Z&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;spec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;tech-lead&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Owns technical direction and architecture decisions.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;responsibilities&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;Review and approve architectural decisions (DEC)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;Unblock teammates on technical questions within 24 hours&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;Run weekly engineering sync&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;skills_required&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;software-architecture, code-review, decision-record]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;default_scope&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;project&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Roles describe responsibilities, not permissions. processkit does not
enforce RBAC.&lt;/li&gt;
&lt;li&gt;A global, unscoped assignment can use the Actor&amp;rsquo;s &lt;code&gt;roles&lt;/code&gt; field
directly. For a scoped or time-bounded assignment (&amp;ldquo;Alice is tech lead
on Project X for Q2&amp;rdquo;), create a &lt;strong&gt;Binding&lt;/strong&gt; instead.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;link_role_to_actor&lt;/code&gt; creates the shortcut entry on the Actor entity.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Binding</title><link>https://projectious-work.github.io/processkit/docs/primitives/binding/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/binding/</guid><description>&lt;p&gt;A scoped or time-bounded relationship between two entities — the
junction-table pattern promoted to a first-class primitive. Use when a
relationship has scope, time, or its own attributes; use a frontmatter
cross-reference field otherwise.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ID prefix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;BIND&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;State machine&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;none&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP server&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;binding-management&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skill&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;binding-management&lt;/code&gt; (Layer 2)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="when-to-use-a-binding-vs-a-cross-reference"&gt;When to use a Binding vs a cross-reference&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Situation&lt;/th&gt;
 &lt;th&gt;Use&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&amp;ldquo;A blocks B&amp;rdquo;&lt;/td&gt;
 &lt;td&gt;frontmatter &lt;code&gt;blocks: [BACK-...]&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&amp;ldquo;Alice is a developer&amp;rdquo; (globally)&lt;/td&gt;
 &lt;td&gt;Actor&amp;rsquo;s &lt;code&gt;roles: [ROLE-...]&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&amp;ldquo;Alice is tech lead on Project X for Q2 2026&amp;rdquo;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Binding&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&amp;ldquo;Security gate applies to this release WorkItem on main&amp;rdquo;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Binding&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&amp;ldquo;Sprint 7 scopes these work items for Apr 1-14&amp;rdquo;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Binding&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="fields"&gt;Fields&lt;/h2&gt;
&lt;h3 id="required"&gt;Required&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Freeform binding type (see conventions below)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;subject&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Entity on the &amp;ldquo;from&amp;rdquo; side&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;target&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Entity on the &amp;ldquo;to&amp;rdquo; side&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="optional"&gt;Optional&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;subject_kind&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Primitive kind of subject&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;target_kind&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Primitive kind of target&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;SCOPE-*&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Scope within which the binding applies&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;valid_from&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;When binding starts (date or ISO 8601 datetime)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;valid_until&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;When binding stops&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;conditions&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;object&lt;/td&gt;
 &lt;td&gt;Freeform constraints attached to binding&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;One-line human-readable summary&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="type-conventions"&gt;Type conventions&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Meaning&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;role-assignment&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Actor → Role (scoped)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;work-assignment&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Actor → WorkItem (assigned to sprint/scope)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;workitem-gate&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;WorkItem → Gate (this gate guards this run or task)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;scope-gate&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Scope → Gate (this gate applies within this scope)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;time-window&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Entity → Artifact/Scope (time or recurrence contract)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;budget-application&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Artifact → WorkItem/Scope (cost policy applies here)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;constraint-scope&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Constraint → Scope (constraint applies in this scope)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;category-assignment&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Entity → Category value&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Process and Schedule are not v2 Binding endpoints. Legacy
&lt;code&gt;process-gate&lt;/code&gt;, &lt;code&gt;process-scope&lt;/code&gt;, and &lt;code&gt;schedule-scope&lt;/code&gt; records should be
migrated to concrete WorkItem, Scope, Artifact, Gate, or time-window
relationships.&lt;/p&gt;</description></item><item><title>Scope</title><link>https://projectious-work.github.io/processkit/docs/primitives/scope/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/scope/</guid><description>&lt;p&gt;A bounded container for work — sprint, milestone, quarter, release, or
project. Scopes give WorkItems, Processes, and Constraints a shared
time and goal boundary.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ID prefix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;SCOPE&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;State machine&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP server&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;scope-management&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skill&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;scope-management&lt;/code&gt; (Layer 2)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="state-machine"&gt;State machine&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;planned → active → completed
 ↘ cancelled
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;completed&lt;/code&gt; and &lt;code&gt;cancelled&lt;/code&gt; are terminal.&lt;/p&gt;
&lt;h2 id="fields"&gt;Fields&lt;/h2&gt;
&lt;h3 id="required"&gt;Required&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string (1–200)&lt;/td&gt;
 &lt;td&gt;Human-readable name&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;enum&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;sprint&lt;/code&gt; · &lt;code&gt;milestone&lt;/code&gt; · &lt;code&gt;quarter&lt;/code&gt; · &lt;code&gt;project&lt;/code&gt; · &lt;code&gt;release&lt;/code&gt; · &lt;code&gt;other&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;state&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Current state&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="optional"&gt;Optional&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;starts_at&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;date&lt;/td&gt;
 &lt;td&gt;Start date&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ends_at&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;date&lt;/td&gt;
 &lt;td&gt;End date&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;goals&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string[]&lt;/td&gt;
 &lt;td&gt;Concrete, testable outcomes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Longer context&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;parent&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;SCOPE-*&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Parent scope (a quarter contains sprints)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;related_decisions&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;DEC-*[]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Planning or retro decisions for this scope&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="example"&gt;Example&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;apiVersion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;processkit.projectious.work/v1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Scope&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;SCOPE-20260411_0909-BrightElm-sprint-7&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;created&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2026-04-11T09:09:00Z&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;spec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Sprint 7 — WildButter docs push&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;sprint&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;active&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;starts_at&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2026-04-11&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ends_at&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2026-04-25&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;goals&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;All primitive reference pages published&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;Documentation build green&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;First public deploy complete&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;parent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;SCOPE-20260410_q2-2026&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Attach WorkItems to a Scope via a &lt;code&gt;scope&lt;/code&gt; field on the WorkItem, or
via a &lt;code&gt;work-assignment&lt;/code&gt; Binding when richer tracking is needed.&lt;/li&gt;
&lt;li&gt;Scope hierarchy (quarter → sprint) is modelled via the &lt;code&gt;parent&lt;/code&gt; field.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;transition_scope&lt;/code&gt; to &lt;code&gt;active&lt;/code&gt; when work begins; to &lt;code&gt;completed&lt;/code&gt; when
the scope closes — this timestamps the lifecycle automatically.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Discussion</title><link>https://projectious-work.github.io/processkit/docs/primitives/discussion/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/discussion/</guid><description>&lt;p&gt;A structured, multi-turn conversation exploring an open question.
Discussions capture the back-and-forth of deliberation and produce
(or fail to produce) DecisionRecords as outcomes.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ID prefix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;DISC&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;State machine&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;discussion&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP server&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;discussion-management&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skill&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;discussion-management&lt;/code&gt; (Layer 4)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="state-machine"&gt;State machine&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;active → resolved
 ↘ closed (no outcome)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;resolved&lt;/code&gt; and &lt;code&gt;closed&lt;/code&gt; are terminal.&lt;/p&gt;
&lt;h2 id="fields"&gt;Fields&lt;/h2&gt;
&lt;h3 id="required"&gt;Required&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;question&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;The driving question — one crisp sentence&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;state&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Current state&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="optional"&gt;Optional&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;participants&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;ACTOR-*[]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Actors participating&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;related&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;DISC-*[]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Related discussion IDs&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;outcomes&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;DEC-*[]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;DecisionRecord IDs produced by this discussion&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;opened_at&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;datetime&lt;/td&gt;
 &lt;td&gt;When the discussion started&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;closed_at&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;datetime&lt;/td&gt;
 &lt;td&gt;When it was marked resolved or closed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="example"&gt;Example&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;apiVersion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;processkit.projectious.work/v1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Discussion&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;DISC-20260411_0910-ClearWave-primitive-page-format&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;created&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2026-04-11T09:10:00Z&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;spec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;question&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;What format should per-primitive reference pages follow?&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;resolved&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;participants&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;ACTOR-claude, ACTOR-20260411_0906-owner]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;outcomes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;DEC-20260411_0911-SwiftMeadow-primitive-page-format]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;opened_at&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2026-04-11T09:10:00Z&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;closed_at&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2026-04-11T09:30:00Z&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;add_outcome&lt;/code&gt; to attach a DecisionRecord after it has been created
with &lt;code&gt;record_decision&lt;/code&gt;. Both tools auto-log.&lt;/li&gt;
&lt;li&gt;Discussions are the audit trail behind decisions — if a decision was
reached after deliberation, the Discussion captures the reasoning path.&lt;/li&gt;
&lt;li&gt;Transition to &lt;code&gt;resolved&lt;/code&gt; when a Decision was reached; to &lt;code&gt;closed&lt;/code&gt; when
the question was abandoned or became moot.&lt;/li&gt;
&lt;li&gt;The Markdown body (below the YAML frontmatter) is the space for the
discussion thread — arguments, evidence, proposals, objections.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Architecture Specification</title><link>https://projectious-work.github.io/processkit/docs/development/architecture-specification/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/development/architecture-specification/</guid><description>&lt;h2 id="system-role"&gt;System Role&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Agent runtimes are consumers. processkit provides context, process
state, governance, and memory; it does not own the agent loop.&lt;/p&gt;
&lt;h2 id="canonical-model"&gt;Canonical Model&lt;/h2&gt;
&lt;p&gt;The v1.0 ontology follows the RFC&amp;rsquo;s T/P/D/C framing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;T&lt;/code&gt;: terminology and shared fragments without their own lifecycle&lt;/li&gt;
&lt;li&gt;&lt;code&gt;P&lt;/code&gt;: persistent primitives with schema and lifecycle&lt;/li&gt;
&lt;li&gt;&lt;code&gt;D&lt;/code&gt;: discriminator variants of primitives&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C&lt;/code&gt;: compositions of primitives and terminology fragments&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The full RFC target is 89 concepts. The alpha should implement only a
small proven subset before expanding. The detailed inventory is captured
in &lt;a href="https://projectious-work.github.io/processkit/docs/development/ontology-reference/"&gt;Ontology Reference&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>Concept Mapping Briefing Analysis</title><link>https://projectious-work.github.io/processkit/docs/development/analysis/concept-mapping-briefing-analysis/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/development/analysis/concept-mapping-briefing-analysis/</guid><description>&lt;p&gt;Source: &lt;code&gt;concept-mapping-2026-05-16.md&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Analyzed: 2026-07-04&lt;/p&gt;
&lt;p&gt;Supersession note: &lt;code&gt;processkit-v1.0-rfc-draft.md&lt;/code&gt; is now the guiding
briefing for processkit v1.0. Where this analysis conflicts with the
&lt;a href="https://projectious-work.github.io/processkit/docs/development/analysis/processkit-v1-rfc-analysis/"&gt;processkit v1.0 RFC analysis&lt;/a&gt;
, the
RFC analysis wins. Keep this file as historical interpretation of the
earlier concept-mapping input, not as current implementation guidance.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>Gate</title><link>https://projectious-work.github.io/processkit/docs/primitives/gate/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/gate/</guid><description>&lt;p&gt;A validation checkpoint in a process. Gates define what must be true
before work can proceed. Evaluation results are LogEntries —
&lt;code&gt;gate.passed&lt;/code&gt;, &lt;code&gt;gate.failed&lt;/code&gt;, or &lt;code&gt;gate.waived&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ID prefix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;GATE&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;State machine&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;none&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP server&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;gate-management&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skill&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;gate-management&lt;/code&gt; (Layer 3)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="fields"&gt;Fields&lt;/h2&gt;
&lt;h3 id="required"&gt;Required&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string (1–100)&lt;/td&gt;
 &lt;td&gt;Short kebab-case identifier&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;What this gate checks (one sentence)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;enum&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;manual&lt;/code&gt; · &lt;code&gt;automated&lt;/code&gt; · &lt;code&gt;hybrid&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;validator&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Prose description of the check (one–two sentences)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="optional"&gt;Optional&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;validator_command&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;CLI command for automated/hybrid gates&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;required_roles&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;ROLE-*[]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Roles authorised to sign off&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;blocking&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;boolean&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;true&lt;/code&gt; = work cannot proceed without passing (default: &lt;code&gt;true&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;evidence_required&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;boolean&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;true&lt;/code&gt; = &lt;code&gt;gate.passed&lt;/code&gt; log must include artifact reference (default: &lt;code&gt;false&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="example"&gt;Example&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;apiVersion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;processkit.projectious.work/v1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Gate&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;GATE-20260411_0912-SteadyArch-smoke-tests-green&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;created&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2026-04-11T09:12:00Z&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;spec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;smoke-tests-green&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;All MCP server smoke tests must pass before tagging a release.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;automated&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;validator&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Run `uv run scripts/smoke-test-servers.py` — exit 0 required.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;validator_command&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;uv run scripts/smoke-test-servers.py&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;blocking&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;evidence_required&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Gates define &lt;em&gt;what&lt;/em&gt; to check; the evaluation happens externally (by an
agent, CI, or human). Log the result with &lt;code&gt;log_event&lt;/code&gt; using
&lt;code&gt;event_type: gate.passed&lt;/code&gt;, &lt;code&gt;gate.failed&lt;/code&gt;, or &lt;code&gt;gate.waived&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;evaluate_gate&lt;/code&gt; runs the &lt;code&gt;validator_command&lt;/code&gt; (if set) and logs the
result in one call.&lt;/li&gt;
&lt;li&gt;Advisory gates (&lt;code&gt;blocking: false&lt;/code&gt;) surface warnings without halting
the process.&lt;/li&gt;
&lt;li&gt;Attach gates to concrete v2 surfaces via &lt;code&gt;workitem-gate&lt;/code&gt; or
&lt;code&gt;scope-gate&lt;/code&gt; Bindings. Legacy &lt;code&gt;process-gate&lt;/code&gt; Bindings are migration-only.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Migration</title><link>https://projectious-work.github.io/processkit/docs/primitives/migration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/migration/</guid><description>&lt;p&gt;A pending, in-progress, or applied transition between two upstream
processkit versions. Migrations are generated by &lt;code&gt;aibox sync&lt;/code&gt; and
represent the delta an agent must apply to bring the project&amp;rsquo;s
&lt;code&gt;context/&lt;/code&gt; up to date.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ID prefix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;MIG&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;State machine&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;migration&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP server&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;migration-management&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skill&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;migration-management&lt;/code&gt; (Layer 3)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="state-machine"&gt;State machine&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;pending → in-progress → applied
 ↘ rejected
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;applied&lt;/code&gt; and &lt;code&gt;rejected&lt;/code&gt; are terminal.&lt;/p&gt;
&lt;h2 id="fields"&gt;Fields&lt;/h2&gt;
&lt;h3 id="required"&gt;Required&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;source&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Upstream source identifier (&lt;code&gt;processkit&lt;/code&gt;, &lt;code&gt;processkit-acme&lt;/code&gt;, …)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;from_version&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Version migrating FROM (semver tag)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;to_version&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Version migrating TO (semver tag)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;state&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Current state&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="optional"&gt;Optional&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;source_url&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Git URL of upstream (for re-fetch if needed)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;generated_by&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;What generated this (&lt;code&gt;aibox sync&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, …)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;generated_at&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;datetime&lt;/td&gt;
 &lt;td&gt;When the migration document was written&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;summary&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;One-line summary for listings&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;affected_files&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;object[]&lt;/td&gt;
 &lt;td&gt;Files touched — each with &lt;code&gt;path&lt;/code&gt;, &lt;code&gt;classification&lt;/code&gt;, and optional &lt;code&gt;group&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;affected_groups&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string[]&lt;/td&gt;
 &lt;td&gt;Logical groups affected (unit of auto-update)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;plan&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Project-specific migration plan drafted by agent&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;progress_notes&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;object[]&lt;/td&gt;
 &lt;td&gt;Append-only notes: &lt;code&gt;{timestamp, note, actor}&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;applied_at&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;datetime&lt;/td&gt;
 &lt;td&gt;When migration reached &lt;code&gt;applied&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;applied_by&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Actor ID that finalised the migration&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;rejected_reason&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;If rejected, why&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;source_api_version&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;API version before a v2 conversion&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;target_api_version&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;API version after a v2 conversion&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;source_processkit_version&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;processkit version before conversion&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;target_processkit_version&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;processkit version after conversion&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;apply_mode&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Migration apply mode (&lt;code&gt;one-shot&lt;/code&gt;, etc.)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The &lt;code&gt;migration-management&lt;/code&gt; MCP server manages migration state
transitions and provides &lt;code&gt;migrate_context_to_v2(dry_run=true)&lt;/code&gt; for the
breaking v2 API conversion path.&lt;/p&gt;</description></item><item><title>Schedule</title><link>https://projectious-work.github.io/processkit/docs/primitives/schedule/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/schedule/</guid><description>&lt;p&gt;Legacy v1 time-based trigger or recurring cadence. In the
SmoothTiger/SmoothRiver v2 direction, processkit no longer presents
&lt;code&gt;Schedule&lt;/code&gt; as a first-class shipped entity surface. Use
&lt;code&gt;Binding(type=time-window)&lt;/code&gt; with &lt;code&gt;conditions.recurrence_rule&lt;/code&gt; for the
durable contract; an external runner still performs execution.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ID prefix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;SCHED&lt;/code&gt; (legacy v1)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;State machine&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;none&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP server&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;none&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skill&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;schedule-management&lt;/code&gt; (legacy authoring guidance)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="v2-replacement"&gt;v2 replacement&lt;/h2&gt;
&lt;p&gt;Use the &lt;code&gt;binding-management&lt;/code&gt; server&amp;rsquo;s &lt;code&gt;create_time_window&lt;/code&gt; path for
time windows. &lt;code&gt;pk-doctor&lt;/code&gt;&amp;rsquo;s &lt;code&gt;v2_contracts&lt;/code&gt; check requires
&lt;code&gt;Binding(type=time-window)&lt;/code&gt; records to include
&lt;code&gt;conditions.recurrence_rule&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Constraint</title><link>https://projectious-work.github.io/processkit/docs/primitives/constraint/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/constraint/</guid><description>&lt;p&gt;An explicit rule or limit the project must respect — budget ceiling,
latency SLO, regulatory requirement, team capacity cap. Violations
are LogEntries; constraints themselves do not change when violated.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ID prefix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;CONST&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;State machine&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;none&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP server&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;none&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skill&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;constraint-management&lt;/code&gt; (Layer 3)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="fields"&gt;Fields&lt;/h2&gt;
&lt;h3 id="required"&gt;Required&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Kebab-case identifier&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;One-sentence statement of the constraint&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;enum&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;budget&lt;/code&gt; · &lt;code&gt;slo&lt;/code&gt; · &lt;code&gt;regulatory&lt;/code&gt; · &lt;code&gt;capacity&lt;/code&gt; · &lt;code&gt;dependency&lt;/code&gt; · &lt;code&gt;policy&lt;/code&gt; · &lt;code&gt;other&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;severity&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;enum&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;hard&lt;/code&gt; · &lt;code&gt;soft&lt;/code&gt; · &lt;code&gt;advisory&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="optional"&gt;Optional&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;measurement&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;How to determine if the constraint is met&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;target&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Threshold or boundary value&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;source&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Where the constraint comes from (contract, regulation, decision)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;active&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;boolean&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;false&lt;/code&gt; = no longer in effect (default: &lt;code&gt;true&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;related_decisions&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;DEC-*[]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Decisions that established or relaxed the constraint&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="severity-levels"&gt;Severity levels&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Level&lt;/th&gt;
 &lt;th&gt;Meaning&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;hard&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Cannot violate — work stops until resolved&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;soft&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Flagged and tracked; can be overridden with justification&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;advisory&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Informational — violation noted but no process impact&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="example"&gt;Example&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;apiVersion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;processkit.projectious.work/v1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Constraint&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;CONST-20260411_0916-SteadyMoss-api-latency-slo&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;created&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2026-04-11T09:16:00Z&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;spec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;api-latency-slo&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;MCP tool round-trip p99 latency must stay below 200ms.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;slo&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;severity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;hard&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;target&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;lt; 200ms p99&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;measurement&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; Measured via the observability pipeline from tool-call dispatch to
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; server response. Alert fires if exceeded for 5 minutes.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;source&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Customer SLA — contract clause 4.2&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;related_decisions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;DEC-20260409_latency-slo-accepted&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Constraint violations are logged via &lt;code&gt;log_event&lt;/code&gt; with
&lt;code&gt;event_type: constraint.violated&lt;/code&gt; — the Constraint entity itself is
not modified.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;hard&lt;/code&gt; constraint violation should surface as a blocked WorkItem or
an urgent Discussion.&lt;/li&gt;
&lt;li&gt;Bind a Constraint to a Scope via a &lt;code&gt;constraint-scope&lt;/code&gt; Binding to make
it scope-specific rather than project-wide.&lt;/li&gt;
&lt;li&gt;Set &lt;code&gt;active: false&lt;/code&gt; when a constraint is no longer in effect (SLA
renegotiated, regulatory exemption granted).&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Category</title><link>https://projectious-work.github.io/processkit/docs/primitives/category/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/category/</guid><description>&lt;p&gt;A classification axis with a closed set of allowed values — priority
levels, bug severity tiers, product areas. Use Category when the valid
values are defined and enforced; use freeform labels for open-ended
tagging.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ID prefix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;CAT&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;State machine&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;none&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP server&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;none&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skill&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;category-management&lt;/code&gt; (Layer 2)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="fields"&gt;Fields&lt;/h2&gt;
&lt;h3 id="required"&gt;Required&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string (1–100)&lt;/td&gt;
 &lt;td&gt;Category name (kebab-case)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;What this axis classifies&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;axis&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Label key used on entities (e.g. &lt;code&gt;priority&lt;/code&gt;, &lt;code&gt;severity&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;values&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;object[]&lt;/td&gt;
 &lt;td&gt;Allowed values — each with &lt;code&gt;name&lt;/code&gt; (required), &lt;code&gt;description&lt;/code&gt;, &lt;code&gt;deprecated&lt;/code&gt;, &lt;code&gt;children&lt;/code&gt; (optional)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="optional"&gt;Optional&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;applies_to&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string[]&lt;/td&gt;
 &lt;td&gt;Primitive kinds this applies to; empty = applies anywhere&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;default&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Default value when unspecified&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;multi&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;boolean&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;true&lt;/code&gt; = entity can carry multiple values (default: &lt;code&gt;false&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="example"&gt;Example&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;apiVersion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;processkit.projectious.work/v1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Category&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;CAT-20260411_0917-BrightFern-workitem-priority&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;created&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2026-04-11T09:17:00Z&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;spec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;workitem-priority&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Business priority for work items.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;axis&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;priority&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;applies_to&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;WorkItem]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;default&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;medium&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;values&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;critical&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Blocks a release or customer. Drop everything.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;high&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Important this sprint. Do before medium items.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;medium&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Normal priority. Default.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;low&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Nice to have. Defer if sprint is full.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Categories complement the &lt;code&gt;type&lt;/code&gt; and &lt;code&gt;priority&lt;/code&gt; fields already on
WorkItem — use Category when you need a &lt;em&gt;custom&lt;/em&gt; classification axis
beyond the built-in enums.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;deprecated: true&lt;/code&gt; on a value signals it should no longer be used on
new entities, but keeps old entities valid.&lt;/li&gt;
&lt;li&gt;Hierarchical value sets use the &lt;code&gt;children&lt;/code&gt; field to model tree-shaped
taxonomies (e.g. product area → sub-area).&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>CrossReference</title><link>https://projectious-work.github.io/processkit/docs/primitives/cross-reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/cross-reference/</guid><description>&lt;p&gt;A lightweight, frontmatter-embedded relationship between two entities.
CrossReference is not a file — it is a convention for fields in the
&lt;code&gt;spec&lt;/code&gt; block of any entity.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ID prefix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;— (not a file entity)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;State machine&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP server&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;index-management&lt;/code&gt; (for querying)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skill&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;cross-reference-management&lt;/code&gt; (Layer 2)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="when-to-use-a-crossreference-vs-a-binding"&gt;When to use a CrossReference vs a Binding&lt;/h2&gt;
&lt;p&gt;Use a CrossReference when the relationship is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Simple&lt;/strong&gt; — no scope, no time bounds, no attributes of its own&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Directional&lt;/strong&gt; — one entity points at another&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use a &lt;strong&gt;Binding&lt;/strong&gt; when the relationship has scope, time, or its own
attributes.&lt;/p&gt;</description></item><item><title>Context</title><link>https://projectious-work.github.io/processkit/docs/primitives/context-entity/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/context-entity/</guid><description>&lt;p&gt;A structured narrative document for long-lived ambient knowledge —
owner identity, working style, team relationships, grooming reports,
situational briefings. The value lives in the Markdown body.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ID prefix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;CTX&lt;/code&gt; (or custom, e.g. &lt;code&gt;OWNER&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;State machine&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;none&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP server&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;none&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skill&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;context-grooming&lt;/code&gt; (Layer 4)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="fields"&gt;Fields&lt;/h2&gt;
&lt;h3 id="required"&gt;Required&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;One-sentence summary of what this document holds&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="optional"&gt;Optional&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;purpose&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Why the document exists — when an agent should read it&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Where the context applies (&lt;code&gt;project&lt;/code&gt;, &lt;code&gt;owner&lt;/code&gt;, &lt;code&gt;team&lt;/code&gt;, &lt;code&gt;sprint&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;tags&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string[]&lt;/td&gt;
 &lt;td&gt;Freeform tags for retrieval&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;sensitive&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;boolean&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;true&lt;/code&gt; = body contains sensitive information (default: &lt;code&gt;false&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="example"&gt;Example&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;apiVersion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;processkit.projectious.work/v1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Context&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;OWNER-identity&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;created&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2026-04-09T00:00:00Z&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;spec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Owner identity, working style, and preferences for AI agents.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;purpose&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; Read at session start to calibrate communication style and technical
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; depth. Load before any substantive work begins.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;scope&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;owner&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;sensitive&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;## Identity&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;Role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;Timezone&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;## Working style&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Context entities use the Markdown body (below the YAML frontmatter)
for their primary content. The &lt;code&gt;spec&lt;/code&gt; block is metadata only.&lt;/li&gt;
&lt;li&gt;Custom ID prefixes (e.g. &lt;code&gt;OWNER-identity&lt;/code&gt;, &lt;code&gt;CTX-team-norms&lt;/code&gt;) are
idiomatic — the &lt;code&gt;CTX-&lt;/code&gt; prefix is the default but not required.&lt;/li&gt;
&lt;li&gt;Sensitive context (&lt;code&gt;sensitive: true&lt;/code&gt;) should live under
&lt;code&gt;context/**/private/&lt;/code&gt; to be excluded from git tracking and the
docs-site build.&lt;/li&gt;
&lt;li&gt;Context grooming (&lt;code&gt;context-grooming&lt;/code&gt; skill) prunes stale Context
documents periodically — documents that have not been read or updated
for a long time are candidates for archiving.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Process</title><link>https://projectious-work.github.io/processkit/docs/primitives/process-entity/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/process-entity/</guid><description>&lt;p&gt;Legacy v1 declarative workflow definition. In the
SmoothTiger/SmoothRiver v2 direction, processkit no longer presents
&lt;code&gt;Process&lt;/code&gt; as a first-class shipped entity surface. Use a
process-instance WorkItem for a concrete run and an Artifact for the
reusable process definition.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ID prefix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;PROC&lt;/code&gt; (legacy v1)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;State machine&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;none&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP server&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;none&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skill&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;process-management&lt;/code&gt; (legacy authoring guidance)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="v2-replacement"&gt;v2 replacement&lt;/h2&gt;
&lt;p&gt;Use:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;WorkItem&lt;/code&gt; with &lt;code&gt;spec.type: process-instance&lt;/code&gt; for a workflow run.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Artifact&lt;/code&gt; with &lt;code&gt;spec.kind&lt;/code&gt; describing the reusable process
definition.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Gate&lt;/code&gt; and &lt;code&gt;Binding&lt;/code&gt; records for policies that apply to the run.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;pk-doctor&lt;/code&gt;&amp;rsquo;s &lt;code&gt;v2_contracts&lt;/code&gt; check flags v2 process-instance WorkItems
that do not point at a process definition.&lt;/p&gt;</description></item><item><title>StateMachine</title><link>https://projectious-work.github.io/processkit/docs/primitives/statemachine/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/primitives/statemachine/</guid><description>&lt;p&gt;Legacy v1 state/transition graph entity. In the SmoothTiger/SmoothRiver
v2 direction, processkit no longer presents &lt;code&gt;StateMachine&lt;/code&gt; as a
first-class shipped entity surface. State machines still exist as
validation machinery used by MCP servers, but users should not model
new workflow records as StateMachine entities.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ID prefix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;SM&lt;/code&gt; (legacy v1)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;State machine&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;none (meta-primitive)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP server&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;none&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skill&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;state-machine-management&lt;/code&gt; (legacy authoring guidance)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="v2-replacement"&gt;v2 replacement&lt;/h2&gt;
&lt;p&gt;Use the owning MCP server for lifecycle transitions. It loads the
appropriate implementation contract and returns structured errors for
invalid transitions. Project workflows should be expressed with
WorkItems, Artifacts, Gates, and Bindings rather than new
StateMachine records.&lt;/p&gt;</description></item><item><title>Ontology Reference</title><link>https://projectious-work.github.io/processkit/docs/development/ontology-reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/development/ontology-reference/</guid><description>&lt;p&gt;&lt;code&gt;processkit-v1.0-rfc-draft.md&lt;/code&gt; is the leading document for the v1.0
ontology. When older analysis conflicts with this page, the RFC and this
page win.&lt;/p&gt;
&lt;h2 id="tpdc-classes"&gt;T/P/D/C Classes&lt;/h2&gt;
&lt;p&gt;The RFC names four implementation classes. If a note says &lt;code&gt;TCDP&lt;/code&gt;, read it
as the same four classes, with the RFC&amp;rsquo;s canonical order written as
&lt;code&gt;T/P/D/C&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Class&lt;/th&gt;
 &lt;th&gt;Meaning&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;T&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Terminology / foundational fragment&lt;/td&gt;
 &lt;td&gt;A concept, slot, or meta-mechanic that has no independent entity lifecycle. T concepts are reused in schemas, state machines, constraints, and generated fragments.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;P&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Primitive&lt;/td&gt;
 &lt;td&gt;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.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;D&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Discriminator&lt;/td&gt;
 &lt;td&gt;A typed variant of a parent primitive, usually represented by &lt;code&gt;kind:&lt;/code&gt; or an equivalent closed enum. D concepts inherit the parent schema and lifecycle.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Composition&lt;/td&gt;
 &lt;td&gt;A named kind assembled from primitives plus T fragments. C concepts can have their own lifecycle, but their schema is built from composed parts.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="counts"&gt;Counts&lt;/h2&gt;
&lt;p&gt;The v1.0 target is 89 ontology concepts.&lt;/p&gt;</description></item><item><title>processkit v1.0 RFC Analysis</title><link>https://projectious-work.github.io/processkit/docs/development/analysis/processkit-v1-rfc-analysis/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/development/analysis/processkit-v1-rfc-analysis/</guid><description>&lt;p&gt;Source: &lt;code&gt;processkit-v1.0-rfc-draft.md&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Analyzed: 2026-07-04&lt;/p&gt;
&lt;p&gt;Status for this project: guiding briefing. Where this RFC conflicts with
&lt;code&gt;concept-mapping-2026-05-16.md&lt;/code&gt; or
&lt;a href="https://projectious-work.github.io/processkit/docs/development/analysis/concept-mapping-briefing-analysis/"&gt;concept-mapping-briefing-analysis.md&lt;/a&gt;
,
this RFC wins.&lt;/p&gt;
&lt;h2 id="executive-read"&gt;Executive Read&lt;/h2&gt;
&lt;p&gt;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 &lt;code&gt;v1.0&lt;/code&gt; branch while &lt;code&gt;main&lt;/code&gt; continues v0.x
maintenance.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>OKF Compatibility Analysis</title><link>https://projectious-work.github.io/processkit/docs/development/analysis/okf-compatibility-analysis/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/development/analysis/okf-compatibility-analysis/</guid><description>&lt;p&gt;Source:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Google Cloud announcement, &amp;ldquo;Introducing the Open Knowledge Format&amp;rdquo;,
published 2026-06-12&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GoogleCloudPlatform/knowledge-catalog&lt;/code&gt; &lt;code&gt;okf/SPEC.md&lt;/code&gt;, v0.1 draft,
inspected at &lt;code&gt;d44368c15e38e7c92481c5992e4f9b5b421a801d&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Analyzed: 2026-07-04&lt;/p&gt;
&lt;h2 id="recommendation"&gt;Recommendation&lt;/h2&gt;
&lt;p&gt;processkit v1.0 should support OKF as an import/export and publication
profile, but should not make OKF the canonical internal format.&lt;/p&gt;
&lt;p&gt;In practical terms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Yes: emit conformant OKF bundles from selected processkit knowledge.&lt;/li&gt;
&lt;li&gt;Yes: ingest OKF bundles into processkit as external knowledge sources.&lt;/li&gt;
&lt;li&gt;Yes: preserve OKF-compatible affordances in v1.0 schema design where
they do not weaken processkit semantics.&lt;/li&gt;
&lt;li&gt;No: do not require the whole repository or canonical &lt;code&gt;context/&lt;/code&gt; tree
to be an OKF bundle.&lt;/li&gt;
&lt;li&gt;No: do not replace processkit entity IDs, typed relations, lifecycle
states, validation modes, event logs, or interface-aware queries with
OKF&amp;rsquo;s permissive markdown conventions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This gives us interoperability without losing the benefits that make
processkit more than an LLM wiki.&lt;/p&gt;</description></item><item><title>Tooling Architecture</title><link>https://projectious-work.github.io/processkit/docs/development/tooling-architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/development/tooling-architecture/</guid><description>&lt;p&gt;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.&lt;/p&gt;
&lt;h2 id="mcp-server-shape"&gt;MCP Server Shape&lt;/h2&gt;
&lt;p&gt;MCP is the stable runtime contract for agents and harnesses. Files remain
human-inspectable, but canonical mutations happen through tools.&lt;/p&gt;
&lt;p&gt;The v1.0 server surface should include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a processkit gateway that exposes the common read/write surface&lt;/li&gt;
&lt;li&gt;per-domain management tools for work, decisions, records, gates,
discussions, roles, bindings, migrations, and skills&lt;/li&gt;
&lt;li&gt;an index-management surface for reads, search, relation traversal, and
interface queries&lt;/li&gt;
&lt;li&gt;a schema-management surface with &lt;code&gt;regenerate_schemas&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;a doctor/audit surface for validation, drift, and release readiness&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>processkit v1.0 Start Assessment</title><link>https://projectious-work.github.io/processkit/docs/development/analysis/processkit-v1-start-assessment/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/development/analysis/processkit-v1-start-assessment/</guid><description>&lt;p&gt;Analyzed: 2026-07-04&lt;/p&gt;
&lt;p&gt;Sources considered:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;processkit-v1.0-rfc-draft.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://projectious-work.github.io/processkit/docs/development/analysis/processkit-v1-rfc-analysis/"&gt;processkit v1.0 RFC Analysis&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://projectious-work.github.io/processkit/docs/development/analysis/concept-mapping-briefing-analysis/"&gt;Concept Mapping Briefing Analysis&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://projectious-work.github.io/processkit/docs/development/analysis/okf-compatibility-analysis/"&gt;OKF Compatibility Analysis&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Google OKF announcement and v0.1 specification&lt;/li&gt;
&lt;li&gt;External survey of adjacent agent, memory, metadata, and coding-agent
projects&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="judgement"&gt;Judgement&lt;/h2&gt;
&lt;p&gt;The v1.0 plan is good enough to start, but not as an unconstrained
9-12 month greenfield rebuild.&lt;/p&gt;
&lt;p&gt;Start a &lt;code&gt;v1.0&lt;/code&gt; branch now, but run it as a narrow alpha first:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;prove a small vertical slice before implementing the full ontology&lt;/li&gt;
&lt;li&gt;keep processkit&amp;rsquo;s canonical semantics stricter than OKF&lt;/li&gt;
&lt;li&gt;position processkit as process memory and governance, not as another
agent runtime&lt;/li&gt;
&lt;li&gt;integrate with external runtimes instead of rebuilding them&lt;/li&gt;
&lt;li&gt;add OKF import/export as a boundary compatibility feature&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The plan&amp;rsquo;s direction is strong. Its main risk is scope, not concept.&lt;/p&gt;</description></item><item><title>Test Strategy</title><link>https://projectious-work.github.io/processkit/docs/development/test-strategy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/development/test-strategy/</guid><description>&lt;p&gt;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.&lt;/p&gt;
&lt;h2 id="test-goals"&gt;Test Goals&lt;/h2&gt;
&lt;p&gt;The v1.0 test strategy must prove:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;schema generation is deterministic&lt;/li&gt;
&lt;li&gt;generated schemas validate real and adversarial fixtures correctly&lt;/li&gt;
&lt;li&gt;MCP tools match their Python signatures and JSON Schemas&lt;/li&gt;
&lt;li&gt;writes enforce state machines, guards, validation modes, and event logs&lt;/li&gt;
&lt;li&gt;index reads match canonical files after creates, transitions, and
migrations&lt;/li&gt;
&lt;li&gt;&lt;code&gt;query_by_interface&lt;/code&gt; returns complete mixed-kind results&lt;/li&gt;
&lt;li&gt;migration tools preserve data within the RFC gate limits&lt;/li&gt;
&lt;li&gt;pk-doctor catches deliberately invalid entities&lt;/li&gt;
&lt;li&gt;docs and examples remain buildable&lt;/li&gt;
&lt;li&gt;aibox integration works as an adapter, not as the only system test&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="automated-layers"&gt;Automated Layers&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Layer&lt;/th&gt;
 &lt;th&gt;Purpose&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Schema unit tests&lt;/td&gt;
 &lt;td&gt;Render Jinja + YAML fragments, compare &lt;code&gt;_generated&lt;/code&gt; output to golden files, and verify merge strategies.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Schema contract tests&lt;/td&gt;
 &lt;td&gt;Validate generated draft-2020-12 schemas against valid and invalid entity fixtures.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;MCP contract tests&lt;/td&gt;
 &lt;td&gt;Check every tool signature against its JSON Schema and run typed request/response fixtures.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;State-machine tests&lt;/td&gt;
 &lt;td&gt;Exercise valid and invalid transitions, guard failures, terminal states, and emitted events.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Index tests&lt;/td&gt;
 &lt;td&gt;Create and mutate fixture entities, then assert search, relation traversal, backlinks, and interface grouping.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Migration tests&lt;/td&gt;
 &lt;td&gt;Run v0.x fixture corpora through migration adapters and assert field-loss, orphan, and hash-immutability gates.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;pk-doctor adversarial tests&lt;/td&gt;
 &lt;td&gt;Feed deliberately invalid fixtures and require every expected finding with no blocking false positives.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Package smoke tests&lt;/td&gt;
 &lt;td&gt;Install processkit from the local tree or release tarball into a temporary fixture project without aibox.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Docs tests&lt;/td&gt;
 &lt;td&gt;Build the Hugo site and verify links to generated reference pages.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Adapter tests&lt;/td&gt;
 &lt;td&gt;Run a small aibox install/apply workflow to prove integration, but keep it outside the core correctness suite.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="fixture-projects"&gt;Fixture Projects&lt;/h2&gt;
&lt;p&gt;Use local fixture projects under the test tree:&lt;/p&gt;</description></item><item><title>Alpha Scope</title><link>https://projectious-work.github.io/processkit/docs/development/alpha-scope/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/development/alpha-scope/</guid><description>&lt;h2 id="purpose"&gt;Purpose&lt;/h2&gt;
&lt;p&gt;The alpha proves that the v1.0 model improves real agentic project work
before the project implements the full 89-concept ontology.&lt;/p&gt;
&lt;p&gt;The alpha is a vertical slice, not a miniature final release.&lt;/p&gt;
&lt;h2 id="scope"&gt;Scope&lt;/h2&gt;
&lt;p&gt;Implement 10-15 high-value concepts covering:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;WorkItem&lt;/li&gt;
&lt;li&gt;DecisionRecord&lt;/li&gt;
&lt;li&gt;Artifact&lt;/li&gt;
&lt;li&gt;Discussion&lt;/li&gt;
&lt;li&gt;Note&lt;/li&gt;
&lt;li&gt;LogEntry&lt;/li&gt;
&lt;li&gt;Binding&lt;/li&gt;
&lt;li&gt;Gate&lt;/li&gt;
&lt;li&gt;Role&lt;/li&gt;
&lt;li&gt;TeamMember&lt;/li&gt;
&lt;li&gt;Skill&lt;/li&gt;
&lt;li&gt;Capability&lt;/li&gt;
&lt;li&gt;Proposition or Risk&lt;/li&gt;
&lt;li&gt;Scope&lt;/li&gt;
&lt;li&gt;Migration&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>Landscape Note</title><link>https://projectious-work.github.io/processkit/docs/development/landscape-note/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/development/landscape-note/</guid><description>&lt;h2 id="positioning"&gt;Positioning&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Its strongest position is:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;provider-neutral process memory and governance for agentic software
projects.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="adjacent-areas"&gt;Adjacent Areas&lt;/h2&gt;
&lt;h3 id="okf"&gt;OKF&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/GoogleCloudPlatform/knowledge-catalog/tree/main/okf" rel="noopener"&gt;OKF&lt;/a&gt;

validates markdown plus YAML frontmatter as an agent-readable exchange
format. processkit should support OKF import/export, generated indexes,
and permissive boundary consumption.&lt;/p&gt;
&lt;p&gt;processkit should not copy OKF&amp;rsquo;s path IDs, untyped links, or prose-only
logs as canonical semantics.&lt;/p&gt;</description></item><item><title>Acceptance Gate</title><link>https://projectious-work.github.io/processkit/docs/development/acceptance-gate/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/development/acceptance-gate/</guid><description>&lt;h2 id="purpose"&gt;Purpose&lt;/h2&gt;
&lt;p&gt;The acceptance gate keeps the v1.0 rebuild measurable. The RFC&amp;rsquo;s
81-criterion gate is authoritative for final cutover; the staged lists
below are working summaries for alpha-first execution.&lt;/p&gt;
&lt;h2 id="rfc-cutover-gate"&gt;RFC Cutover Gate&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Phase&lt;/th&gt;
 &lt;th style="text-align: right"&gt;Criteria&lt;/th&gt;
 &lt;th style="text-align: right"&gt;Strict&lt;/th&gt;
 &lt;th style="text-align: right"&gt;Soft&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;P0 - Pre-conditions&lt;/td&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: right"&gt;0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;O1 - Ontology completeness&lt;/td&gt;
 &lt;td style="text-align: right"&gt;11&lt;/td&gt;
 &lt;td style="text-align: right"&gt;9&lt;/td&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;T2 - Tooling parity&lt;/td&gt;
 &lt;td style="text-align: right"&gt;12&lt;/td&gt;
 &lt;td style="text-align: right"&gt;9&lt;/td&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;C3 - Corpus migration&lt;/td&gt;
 &lt;td style="text-align: right"&gt;10&lt;/td&gt;
 &lt;td style="text-align: right"&gt;10&lt;/td&gt;
 &lt;td style="text-align: right"&gt;0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;S4 - Skills and agents&lt;/td&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: right"&gt;0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;A5 - First-ART validation&lt;/td&gt;
 &lt;td style="text-align: right"&gt;18&lt;/td&gt;
 &lt;td style="text-align: right"&gt;18&lt;/td&gt;
 &lt;td style="text-align: right"&gt;0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;G6 - Cutover decision point&lt;/td&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: right"&gt;0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;R7 - Post-cutover stabilisation&lt;/td&gt;
 &lt;td style="text-align: right"&gt;9&lt;/td&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: right"&gt;&lt;strong&gt;81&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: right"&gt;&lt;strong&gt;75&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: right"&gt;&lt;strong&gt;6&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>Framework &amp; SEO Skills</title><link>https://projectious-work.github.io/processkit/docs/skills/catalog/framework/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/skills/catalog/framework/</guid><description>&lt;p&gt;Skills for specific frameworks and search engine optimization.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="reflex-python"&gt;reflex-python&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Reflex Python web framework for building full-stack apps in pure Python. Components, state management, and deployment. Use when building Reflex apps, designing component hierarchies, or managing app state.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Triggers:&lt;/strong&gt; When building web apps with Reflex, designing components, managing state, routing, or creating full-stack Python web applications.
&lt;strong&gt;Tools:&lt;/strong&gt; &lt;code&gt;Bash(reflex:*)&lt;/code&gt; &lt;code&gt;Bash(python:*)&lt;/code&gt; &lt;code&gt;Read&lt;/code&gt; &lt;code&gt;Write&lt;/code&gt;
&lt;strong&gt;References:&lt;/strong&gt; &lt;code&gt;component-reference.md&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Key capabilities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;App structure: initialization, entry points, page decorators, file-based routing, configuration&lt;/li&gt;
&lt;li&gt;Component system: layout (box, flex, grid), display (text, heading, image), input (input, select, checkbox), feedback (alert, toast, spinner)&lt;/li&gt;
&lt;li&gt;State management with &lt;code&gt;rx.State&lt;/code&gt; classes, typed vars, event handlers, computed vars, and substates&lt;/li&gt;
&lt;li&gt;Event handling: on_click, on_change, two-way binding, background tasks, event chaining&lt;/li&gt;
&lt;li&gt;Styling with Radix UI design tokens, responsive props, light/dark themes&lt;/li&gt;
&lt;li&gt;Routing with dynamic segments, programmatic navigation, on_load events, and 404 handling&lt;/li&gt;
&lt;li&gt;Database integration via built-in SQLModel with automatic migrations&lt;/li&gt;
&lt;li&gt;Deployment to Reflex Cloud or self-hosted via Docker&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;??? example &amp;ldquo;Example usage&amp;rdquo;
&lt;strong&gt;Build a todo app:&lt;/strong&gt; Defines a &lt;code&gt;TodoState&lt;/code&gt; with a list of todos and input field, creates event handlers for add/delete/toggle, builds UI with &lt;code&gt;rx.input&lt;/code&gt;, &lt;code&gt;rx.button&lt;/code&gt;, and &lt;code&gt;rx.foreach(TodoState.todos, render_todo)&lt;/code&gt; to render the list dynamically.&lt;/p&gt;</description></item><item><title>Performance Skills</title><link>https://projectious-work.github.io/processkit/docs/skills/catalog/performance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/processkit/docs/skills/catalog/performance/</guid><description>&lt;p&gt;Skills for performance analysis, optimization, and load testing.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="performance-profiling"&gt;performance-profiling&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Performance analysis methodology and profiling techniques for CPU, memory, and I/O. Flame graphs, benchmarking, and regression detection. Use when optimizing performance, profiling bottlenecks, or reviewing performance-critical code.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Triggers:&lt;/strong&gt; When identifying bottlenecks, profiling CPU/memory/I/O, interpreting flame graphs, setting up benchmarks, or optimizing slow code paths.
&lt;strong&gt;Tools:&lt;/strong&gt; &lt;code&gt;Bash&lt;/code&gt; &lt;code&gt;Read&lt;/code&gt; &lt;code&gt;Write&lt;/code&gt;
&lt;strong&gt;References:&lt;/strong&gt; &lt;code&gt;profiling-tools.md&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Key capabilities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Follow the full performance analysis cycle: Identify, Measure, Profile, Optimize, Verify&lt;/li&gt;
&lt;li&gt;CPU profiling with sampling profilers and flame graph generation&lt;/li&gt;
&lt;li&gt;Memory profiling to detect leaks, allocation pressure, and unbounded growth&lt;/li&gt;
&lt;li&gt;I/O profiling for disk, network, and database bottlenecks (N+1 queries, connection pooling, slow queries)&lt;/li&gt;
&lt;li&gt;Benchmarking with statistical significance and regression detection&lt;/li&gt;
&lt;li&gt;Flame graph interpretation: reading X-axis (alphabetical, not time), Y-axis (stack depth), and differential flame graphs&lt;/li&gt;
&lt;li&gt;Common optimization patterns: algorithmic improvements, batching, caching, pooling, lazy evaluation, data layout&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;??? example &amp;ldquo;Example usage&amp;rdquo;
&lt;strong&gt;Slow API endpoint:&lt;/strong&gt; Measures end-to-end latency, profiles the handler, discovers 80% of time spent in 47 sequential database queries (N+1 problem). Rewrites as a single JOIN query, reducing response time from 3 seconds to 120ms.&lt;/p&gt;</description></item></channel></rss>