Releases: projectious-work/processkit
v0.18.2 — mcp-config paths fix (#8) + skip_decision_record + drift guard
Fixed
- Stale
mcp-config.jsonpaths block MCP server startup in derived
projects (#8).
12 of the 16 per-skillmcp-config.jsonfiles under
context/skills/processkit/<skill>/mcp/shipped ascriptpath that
omitted theprocesskit/category segment introduced in v0.17.0's
nested layout (context/skills/<skill>/mcp/server.pyinstead of
context/skills/processkit/<skill>/mcp/server.py). Harnesses merged
the broken path verbatim and then failed to launch the affected MCP
servers on startup, forcing agents back to bash/python workarounds
forcontext/writes. Latent since v0.17.0; masked until v0.18.6 of
aibox because earlier aibox walker bugs prevented.mcp.jsonfrom
being written at all. Mechanical fix — prependprocesskit/to the
script arg for:actor-profile,binding-management,
decision-record,discussion-management,event-log,
gate-management,id-management,index-management,
model-recommender,role-management,scope-management,
workitem-management. Mirrored intosrc/context/. AGENTS.mdSession start block points atpk-resume(was stale
morning-briefing-generate, renamed in v0.17.0).
Added
skip_decision_record(reason, session_id?)MCP tool on
skill-gate— acknowledges the v2 contract's decision-language
window without writing a record, when the agent concludes no decision
needs recording (e.g. the user withdrew a proposal). Writes a
session-<id>.decision-skipmarker next to the existing.ack/
.decision-observedmarkers (24 h TTL, empty reason rejected).
check_decision_captured.pyhonours skip markers in block mode.compliance-contract.mdasset bumped to v2. Adds the clause:
"When the last five user messages contain explicit decision language
(approved / decided / ship it / let's go / ok / yes / confirmed),
either callrecord_decisionin the same turn or call
skip_decision_record(reason=...)to acknowledge the skip." Resolves
the v1 asset vs v2AGENTS.mdinconsistency called out in the
v0.18.1 known-issues block. Existing session markers (which embed
the old contract hash) automatically invalidate; callers re-ack on
next hook invocation.scripts/check-src-context-drift.sh— release-time drift guard.
Runsdiff -rq context/ src/context/with an allowlist for
dogfood-only directories (actors/,artifacts/,bindings/,
decisions/,discussions/,logs/,migrations/,notes/,
roles/,team/,workitems/, rootINDEX.md), runtime paths
(.cache/,.state/,__pycache__/,.gitkeep), andtemplates/.
Wired intoscripts/build-release-tarball.shas a pre-build step;
non-zero exit fails the release before the tarball is built.
Structural guard against the v0.15.0–v0.18.0 drift class.- Session-start skill-check checklist (SnappyTrout).
AGENTS.md
andsession-handover/SKILL.mdnow name six task classes (research
ingestion, artifact creation, discussion management, decision
recording, backlog item creation, quality audits) that must be
preceded by asearch_entities(kind=skill, ...)/find_skill(...)
/list_skills(...)call. Extends, does not duplicate, the
compliance-contract 1 % rule. /pk-standupand/pk-statusdifferentiated./pk-standupis
now the brief daily standup (done / doing / next / blockers);
/pk-statusis the fuller status snapshot. Both invoke
standup-context, different argument framing. Prior identical
bodies were a v0.17.0 authoring glitch.
Closed work
BACK-20260410_1049-SnappyTrout— session-start skill-check
(shipped here).BACK-20260411_0802-LivelyTulip— skill-finder MCP server
(find_skill,list_skillsalready ship; verified by
scripts/smoke-test-servers.py).
v0.18.1 — src↔context sync + skill-gate hookEventName hotfix
Hotfix release
v0.18.0 shipped but the release tarball (packaged from src/context/) was missing content that had landed only in the dogfooded context/ tree since v0.15.0. v0.18.1 brings src/context/ up to parity so the tarball actually contains everything the CHANGELOG for v0.15.0–v0.18.0 claimed.
Fixes
- #7 —
skill-gate/scripts/emit_compliance_contract.pynow readshook_event_namefrom stdin and echoes it back ashookEventNamein thehookSpecificOutputenvelope, which Claude Code 2.1+ requires. Falls back to"UserPromptSubmit"if stdin is missing or malformed. Codex / plain-stdout path unchanged. Resolves theinvalid hookSpecificOutputerror that was blocking every Claude Code 2.1+ prompt. check_route_task_called.py— marker lookup decoupled fromsession_id; scans.state/skill-gate/for any valid marker with matchingcontract_hashand 12h TTL.test_hooks.py— new coverage for hookEventName echo, stale marker, and hash-mismatch cases.
Added (previously only in dogfood tree)
team-creatorskill (claimed v0.15.0).- 26
/pk-*slash-command files across 13 skills (claimed v0.17.0 + v0.18.0). - skill-gate Rail 5 scripts + transcript fixtures.
discussion-management/commands/,id-management/config/,index-management/config/.owner-profilingOWNER-*.md assets.- Actor/Role schema updates for CapabilityProfileRouting (
model_profiles,model_profile_override). - AGENTS.md template: compliance contract v2 + decision-language clause + Session start block.
Tests
test_hooks.py: 13/13 green.smoke-test-servers.py: all 16 MCP servers green.
Compatibility
- aibox minimum:
0.18.3(same as v0.18.0).
Known non-blocking inconsistency
- AGENTS.md template carries
pk-compliance v2marker butskill-gate/assets/compliance-contract.mdis still v1. Clauses remain a strict superset in v2; a follow-up will reconcile both to v2 once theskip_decision_recordMCP tool it references ships.
Artifacts
processkit-v0.18.1.tar.gz— source tarball (722K)processkit-v0.18.1.tar.gz.sha256— checksum
Upgrade
[processkit]
version = "v0.18.1"v0.18.0 — CapabilityProfileRouting + skill-gate decouple
Highlights
- CapabilityProfileRouting — three-layer model-selection architecture
(DEC-20260417_1800). Replaces the per-Actorpreferences.modelpin
with:- Layer A — model catalog (
model-recommenderskill) - Layer B — project/owner preferences (
set_config/get_configMCP tools) - Layer C — role standard sets: new
Role.model_profilesranked
array; optionalActor.model_profile_override - All 8 permanent team roles populated with Anthropic/OpenAI/Google/
xAI/DeepSeek fallbacks.
- Layer A — model catalog (
- Skill-gate PreToolUse hook decoupled from
session_id— hook now
scans for any marker with matchingcontract_hash+ 12h TTL. Fixes
silent lockouts when harness and MCP server disagreed on session id. emit_compliance_contract.pyechoeshookEventName— required by
Claude Code 2.1+'shookSpecificOutputenvelope.- 13 additional
/pk-*slash-command promotions — 26 total /pk-*
commands, 0 legacy processkit commands.
See CHANGELOG.md for the full list.
Compatibility
| processkit | aibox (min) |
|---|---|
v0.18.0 |
0.18.3 |
Installation
# aibox.toml
[processkit]
source = "https://github.com/projectious-work/processkit.git"
version = "v0.18.0"Artifacts
processkit-v0.18.0.tar.gz— reproduciblesrc/tarball (aibox sync
prefers this over a git fetch)processkit-v0.18.0.tar.gz.sha256— sidecar checksum
v0.17.0 — 13 /pk-* commands + OpenWeave + Rail 5 + contract v2
[v0.17.0] — 2026-04-17
Added
- 13
/pk-*ergonomic slash commands — the/pk-<verb>namespace
is processkit's canonical command surface, provider-neutral across
Claude Code, Codex CLI, Cursor, OpenCode (Aider falls back to
AGENTS.md instructions). Three delivery surfaces:- Skill-driven (9):
/pk-resume(session start),
/pk-status+ alias/pk-standup(mid-session status),
/pk-wrapup(session end),/pk-note(fleeting capture with
Zettelkasten qualified-link suggestion at capture time),
/pk-discuss(structured multi-turn engagement),
/pk-research(investigate with confidence labels),
/pk-release(prepare a release),/pk-publish(push + publish). - AGENTS.md-driven (3):
/pk-test,/pk-build,/pk-lint—
read a structured<!-- pk-commands -->YAML block in AGENTS.md
and execute the project's declared command. Fills the cross-harness
gap (4 of 5 harnesses ship zero build/test coverage). - Cross-cutting skill-driven (1):
/pk-review— processkit-
opinionated code review against AGENTS.md conventions + compliance
contract.
- Skill-driven (9):
<!-- pk-commands -->YAML block in AGENTS.md — machine-readable
project-specific build/test/lint/fmt/typecheck declarations.- OpenWeave: team-creator 4-layer override surface (FEAT-OpenWeave)
— landscape artifact override (3-level precedence), DEC-*-TeamWeights
(tag-based weight + threshold override),role-archetypes.yaml
(project-level role→class pin override with delta/replace semantics
and eager validation). team-creator bumped v1.1.0 → v1.2.0. - QuietLedger Rail 5: auto-capture of decisions (FEAT-QuietLedger)
— Lever 1 PreToolUse decision-language gate (shadow-mode-ON default;
--mode=blockavailable but NOT recommended until calibrated) +
Lever 2 SessionEnd sweeper (writes Note artifact tagged
decision-candidatesfor owner async review). New MCP tool:
skip_decision_record(reason, session_id)on skill-gate.
Compliance contract bumped v1 → v2 (new Rail 5 clause). - ShadowCount calibration (RES-ShadowCount) — 9-session corpus,
precision 6/19 = 0.316, recall 6/6 = 1.00. Verdict: NO-GO on
--mode=blockwith current marker list. Marker tightening proposed. - DEC-CommandNexus — strategic decision:
/pk-<verb>namespace,
processkit ships commands for any lifecycle phase not uniformly
built-in across all major harnesses. Build/test/lint exclusion
reversed. - CommandCompass research artifact — cross-harness built-in command
matrix + external landscape scan + gap analysis + proposal.
Fixed
- tool_use transcript filter — PreToolUse gate + SessionEnd sweeper
now filtertool_use,tool_result,isCompactSummary,
isSidechain, and<local-command-*>entries from transcript reads.
Prevents false-positive gate fires on agent write payloads that
contain decision-language text (e.g., "ship it" in WorkItem YAML).
Changed
- Compliance contract v1 → v2 — new clause: "When the last five
user messages contain explicit decision language, either call
record_decisionin the same turn or callskip_decision_record."
Existing session acknowledgements re-prompt once on upgrade (contract
hash changes). - team-creator v1.1.0 → v1.2.0 — 4-layer override docs + new
--threshold-overridesCLI flag + agent-driven discovery section
with trigger phrases for all 4 layers. - skill-finder — 13 new trigger-phrase entries for
/pk-*commands- v0.17.0 ergonomic shortcuts category section.
v0.16.0 — canonical team-composition schema (closes aibox #6)
[v0.16.0] — 2026-04-15
Added
- Canonical team-composition schema fields — closes the aibox field
report in issue #6, which requested that processkit land a canonical
team primitive in place of their temporaryx_aibox.*namespaced
extension. Three new optional fields onRole(primary_contact,
clone_cap,cap_escalation) and two onActor(is_template,
templated_from):Role.primary_contact(bool, defaultfalse) — true for the role
that is the single point of contact with the human owner. Exactly
zero or one role per team may set this.Role.clone_cap(int, default5) — per-role parallelism
ceiling. The role withprimary_contact: truemust set
clone_cap: 1(never cloned).Role.cap_escalation(string, default"owner") — who must
approve exceedingclone_cap. Literal"owner"or an actor-ref.Actor.is_template(bool, defaultfalse) — true for the
canonical seed Actor that defines a role binding; clones derive
from it. Enables index queries that separate seed team members
from task-specific clones.Actor.templated_from(Actor-ref, defaultnull) — back-
reference from a clone to its template Actor.
team-creatorskill bumped 1.0.0 → 1.1.0 — emits the five new
canonical fields on everyteam-create/team-rebalancerun.
Deactivation logic now usesis_template: trueas the canonical
seed identifier instead of the prior same-model-same-role heuristic.- Two new applied migrations —
MIG-20260415T085311(Role schema- data) and
MIG-20260415T095000(Actor schema + data). Back-fill
every existing Role/Actor entity so v0.15.0-installed teams carry
the new fields automatically on upgrade.
- data) and
Changed
role-managementskill bumped to v1.0.1 — documents the three
new Role fields and their validation invariants.actor-profileskill bumped to v1.0.1 — documents the two new
Actor fields and their validation invariants.
Upstream migration note
Consumers carrying the aibox-style spec.x_aibox.* extension can lift
those fields into the canonical names with a one-to-one mapping:
x_aibox.is_template → is_template, x_aibox.clone_of →
templated_from, x_aibox.default_clone_cap → clone_cap,
x_aibox.escalate_cap_to → cap_escalation, plus a new field
primary_contact set true on the PM-equivalent role.
v0.15.0 — team-creator skill + session-orientation wiring
[v0.15.0] — 2026-04-15
Added
team-creatorskill — provider-neutral team composition. Tiers
available models into heavy / medium / light using a weighted
formula over Capability (0.60), Cost-efficiency (0.20), Latency
(0.10), and Governance (0.10), then maps eight role archetypes
(PM, sr-architect, jr-architect, developer, sr-researcher,
jr-researcher, jr-developer, assistant) onto the tiered models.
Three commands:team-create(full derivation, writes 24 entities- roster + DecisionRecord),
team-review(read-only diff vs latest
landscape),team-rebalance(targeted re-tier of named roles).
Composesmodel-recommender,role-management,actor-profile,
binding-management,decision-record-write— no new primitives,
no MCP server. Defaults reproduce the v0.14.0 manually-composed
team 8/8 on Anthropic Max 5×. Validated by Phase 3 dogfood
(ART-20260415_1545-TeamWeaver-team-creator-dogfood-diff).
- roster + DecisionRecord),
- Session-orientation wiring — AGENTS.md gains a "Session start"
section under the compliance-contract block: agents run
morning-briefing-generatebefore acting (provider-neutral, every
AGENTS.md-aware harness picks it up).emit_compliance_contract.py
hook script extended with--include-session-startflag for
Claude Code / Cursor reinforcement. - 6 new artifacts under
context/artifacts/— TeamWeaver Phase 1
design, OpenWeave Phase 1 design, landscape snapshot (HTML +
structured summary), Phase 3 dogfood diff, Rail 5 research. - 3 new follow-up WorkItems filed —
FEAT-OpenWeave(4-layer
override design done; implementation queued),FEAT-QuietLedger
(Rail 5 L1+L2 implementation),RES-GapScout(research closed).
Changed
morning-briefingskill bumped 1.0.0 → 1.1.0 — adds
context/migrations/pending/to "Sources to read" and emits a
one-line token-budget-share snapshot (Opus / Sonnet / Haiku
actuals vs ≈5/85/10 target, flagging drift > ±10pp per
DEC-20260414_0900-TeamRoster).
Closed
ARCH-20260414_1245-FirmFoundation— enforcement
implementation plan closed. All four originally-blocking FEAT
items (Rails 1–4) plus the two reconstructed follow-ups
(PathFinder, TeamWeaver) shipped.
v0.14.0 — enforcement Rails 1-4
processkit (Bucket A) half of the enforcement rollout. See CHANGELOG for full details.
Rails shipped
- Rail 1 — canonical compliance contract + AGENTS.md primacy header
- Rail 2 — provider-neutral hook scripts (SessionStart / UserPromptSubmit / PreToolUse) with golden-file fixtures
- Rail 3 —
acknowledge_contract()MCP tool onskill-gate - Rail 4 — 1%-rule sentence in 8 entity-mutating MCP tool descriptions
Aibox-side wiring (separate)
Tracked as upstream issues #43–#51 on projectious-work/aibox. Until aibox ships those, only Rails 1 and 4 are visible to derived projects.
Compatibility
- Min aibox: 0.17.12
- Backward-compatible: yes (no schema, MCP signature, or state-machine breakage)
v0.13.0 — task-router, skill-finder MCP, skill-gate
What changed in v0.13.0
Added
task-routerMCP server —route_task(task_description)returns the matching skill, project-specific process override fromcontext/processes/, and recommended MCP tool in a single call without an LLM call. Two-phase heuristic routing (keyword → domain group → tool) with skill-finder fallback for cross-domain tasks. Return shape includesskill_description_excerpt,tool_qualified({server}__{tool}),confidence,routing_basis, andcandidate_tools[].skill-finderMCP server —find_skill(task_description)andlist_skills(category?)tools for the existing skill-finder skill. Read-only, idempotent.skill-gatemeta-skill — provider-neutral 1% rule enforcement with decision graph and rationalization pre-emption table.
Changed
- All 20 entity-mutating MCP tools carry prerequisite routing prompts in their docstrings (Track C).
skill-builderandskill-reviewerenforce one-sentence imperative description convention (Track E).AGENTS.mdroutes viaroute_task()instead offind_skill()directly.context/processes/release.mdfleshed out with processkit-specific steps.
Artifact
| File | SHA-256 |
|---|---|
processkit-v0.13.0.tar.gz |
see .sha256 sidecar |
Docs deploy blocked by WildButter/aibox#42 (Docusaurus ProgressPlugin incompatibility).
v0.12.0 — artifact-management skill and MCP server
What's new in v0.12.0
Added
artifact-managementskill and MCP server — new Layer 2 processkit primitive for registering and retrieving completed deliverables (documents, datasets, builds, diagrams, URLs, etc.). Supports two usage patterns: self-hosted (Markdown body in the entity file) and pointer (external URL or path vialocation). MCP tools:create_artifact,get_artifact,query_artifacts,update_artifact. No state machine — it is a catalogue record, not a work-tracking entity.skill-finderupdated — trigger phrases forartifact-managementand one-liner in the Process category.context/skills/INDEX.md— processkit skill count updated to 31; Layer 2 entry includesartifact-management **MCP**.
See CHANGELOG.md for full details.
v0.11.1
Fixed
ids.py:pascalandcamelare now distinct word styles —pascalproduces PascalCase (BoldVale, every word capitalised);camelnow correctly produces true camelCase (boldVale, first word lowercase). Previouslycamelincorrectly generated PascalCase.settings.tomlupdated toword_style = "pascal".
Changed
context/dogfood mirror synced —resolve_entity()and partial-ID lookup now live in the installedcontext/copies ofindex.pyand all MCP servers, consistent with thesrc/implementation shipped in v0.10.0.session-handoverSKILL.md — log-entry writing steps updated withgenerate_idcall, date-sharded path derivation, and word-pair ID template.context/skills/INDEX.md— expanded with skill package layout section and_lib/note.aibox.lock— updated to aibox v0.17.12, processkit v0.10.0.