v0.25.2 - model-spec artifact hygiene
v0.25.2 - model-spec artifact hygiene
v0.25.2 is a patch release that settles the v0.25 model-spec projection
and release-deliverable hygiene work. The important architectural outcome
is that model descriptions are represented as normal processkit artifacts:
Artifact(kind=model-spec). They are no longer a separate primitive and
are no longer hidden only inside model-recommender JSON when a binding needs
to target them.
This release also tightens pk-doctor so derived projects get early signal
when their local context still contains stale model primitives, non-canonical
model artifact IDs, HTML artifact sidecars, suspicious _0000 artifact
timestamps, or model-assignment bindings that target the old artifact shape.
Highlights
- Model descriptions now ship as timestamped model-spec artifacts in both
context/artifacts/andsrc/context/artifacts/. - Model-assignment bindings now target timestamped
Artifact(kind=model-spec)IDs. pk-doctornow flags model-spec artifact naming drift and legacy
ART-model-*binding targets..gitignore.exampleis now part of the release deliverable under
src/.gitignore.example.- Applied and rejected dogfood migrations were archived out of active
migration state. - The resolver remains compatible with legacy
MODEL-*andART-model-*
inputs while canonical bindings use timestamped artifact IDs.
Added
- Timestamped model-spec artifacts:
ART-YYYYMMDD_HHMM-ModelSpec-<provider>-<family>.md. - A
pk-doctorcontext-hygiene check for non-timestamped model-spec
artifact IDs and filenames. - A
pk-doctorcontext-hygiene check for model-assignment bindings that
still target oldART-model-*model artifacts. src/.gitignore.examplein the consumer deliverable, so the gitignore
example artifact ships with processkit.
Changed
- Model-assignment bindings now target processkit-addressable
Artifact(kind=model-spec)entities instead of hidden JSON records or the
short-lived non-timestampedART-model-*projection. migrate_models.pyemits canonical timestamped model-spec artifact IDs.- The release boundary guard accepts only timestamped model-spec artifacts in
src/context/artifacts/. - Applied and rejected migrations were archived into
context/archives/,
reducing active context noise while preserving migration history. - The shipped model-spec projection is mirrored into
src/context/so
consumers receive model descriptions and bindings in the release tarball.
Fixed
pk-doctornow catches artifact hygiene issues that previously reached a
zero-error report:- HTML artifacts in active context.
- suspicious
_0000artifact timestamps. - non-timestamped model-spec artifact names.
- model bindings that still target old model artifact IDs.
model-recommenderresolver compatibility now accepts legacyMODEL-*and
ART-model-*references during migration while resolving canonical
timestamped model-spec artifacts.context-archivingcan serialize archive manifests that contain
datetime-like metadata.
Compatibility Notes
- Consumers should treat
Artifact(kind=model-spec)as the binding target for
model descriptions. - The legacy
context/models/primitive projection is removed from the
processkit deliverable. - Existing derived projects may still contain old
MODEL-*orART-model-*
references. The resolver accepts those forms for compatibility, but
pk-doctornow reports them so projects can migrate to timestamped
artifact IDs. aiboxshould still own first-line migration generation for derived
projects;pk-doctoris the fallback and local validation layer.
Release Asset
- Tarball:
processkit-v0.25.2.tar.gz - SHA-256:
b942c888a2b15fe3cf680405bf0725ce8703d9638291bf8fdf22ce14f035d50a - Commit:
2f9e391040244dc83415199e19242e60e06595c2
Verification
uv run context/skills/processkit/model-recommender/scripts/test_migrate_models.py
passed:20 passed.uv run --with pytest --with pyyaml pytest context/skills/processkit/model-recommender/scripts/test_resolver.py
passed:29 passed.uv run context/skills/processkit/pk-doctor/scripts/test_doctor.pypassed.uv run context/skills/processkit/pk-doctor/scripts/doctor.py --no-log
passed with0 ERROR / 0 WARN.scripts/check-src-context-drift.sh --release-deliverablepassed.uv run --script context/skills/processkit/release-audit/scripts/release_audit.py --tree=src-context
passed with0 ERROR / 0 WARN.uv run scripts/smoke-test-servers.pypassed across the MCP smoke suite.sha256sum -c processkit-v0.25.2.tar.gz.sha256passed for the release
tarball.