Repository navigation
Assay 0.13.0
Assay 0.13.0
Assay 0.13.0 replaces the 0.6 built-in workflow/runtime stack with a smaller,
local-first project evidence workbench. The release contract is exactly
0.13.0+s4+l8+r3: package 0.13.0, manifest schema 4, layout 8, and systems
registry schema 3.
This note covers the full change set since v0.6.0. Intermediate 0.7–0.13
candidates were never released and have no compatibility contract.
Native Project work
- Project is a native schema-1 object.
project/project.yaml(or
.assay/project/project.yamlin overlay mode) is the sole Project id/name
authority. - Task provides durable bounded-work identity with readable
task-0001-<slug>ids, a closedtask.jsonenvelope, reader-ownedprd.md,
optional checkpoint/design/research material, explicit lifecycle and archive,
exact host-context bindings, typed lineage relationships, and partial-health
listing. Task does not own dispatch, permissions, project acceptance, or
host runtime state. - Roadmap provides readable
roadmap-0001-<slug>ids, reader-owned outcome
prose, independent state and horizon, validated dependency/replacement graphs,
explicit Task links, revisions, archive, and partial-health reads. Roadmap and
Task lifecycle never propagate into each other. - Spec provides readable
spec-0001-<slug>ids, a closed schema-1 envelope,
reader-owned specification prose, draft/active/retired lifecycle, explicit
replacement and archive, and digest-bound promotion provenance from an
Analysis or approved Task file. Activation validates structure; it is not
approval or Project acceptance. - Readable ids are allocated across live and archived records, tolerate
duplicate titles, and remain stable when titles change.
External Plugin metadata, not execution
- The former built-in plugin runtime is replaced by schema-1 external Plugin
metadata under.assay/external-plugins.json. plugin register,observe,list,check,disable,enable, and
removevalidate and record descriptors, exact payload integrity, requested
host surfaces, grants, observations, and Assay-owned contribution state.- Assay does not fetch, install, activate, execute, supervise, or uninstall
external payloads. Host execution and host-owned state remain outside Assay. - The repository includes a descriptor-only generic fixture and an unpublished,
metadata-only Ponytail adapter. Neither package contains executable Ponytail
or host payload code.
Source convergence
- External evidence is consistently a Source. Living and frozen modes share
thesources/<alias>/namespace, observation/manifests/captures ledger, and
Source-bound Analysis flow. - The former Reference and Absorb command families, public schemas, templates,
and help entries are removed. Layout 8 has noreferencespath and current
Templates do not scaffold Reference/Absorb records. - Source observations no longer contain Analysis lifecycle state. Analysis
close does not rewrite an observation; derivedhistory.mdand persisted
comparison files are removed, whilesource diffderives comparisons from
immutable manifests. statusreports local upstream movement without network access;--fetchis
explicit.source syncandswitchpreserve unrecorded managed-checkout work
by failing before a destructive refresh.- Adopted Source material is tracked only through
assay source adoption ....
Definitions, inspections, evidence, decisions, baselines, and rollback
receipts use theassay.source-adoption-*/v1schema family and lazy
.assay/source-adoptions/store. - The earlier internal Donor module, diagnostics, schema tokens, and loose-state
path are removed. No dual reader or migration writer exists for those
unpublished candidate records. - Overlay-to-standalone conversion preflights and preserves the current Source
ledger and Source adoption receipt store without taking ownership of target
System code.
Simpler Templates, manifest, and workspace index
- Built-in
study,solve, andexploreare one-shot Templates. A custom
Template is an explicit YAML path with a closed schema; Template identity is
not persisted or reloaded after expansion. - Manifest schema 4 contains the literal framework version and exact layout-8
resolver block.layout.entriesstores only bounded paths expanded from the
one-shot Template; fixed native/core paths are resolved rather than copied
into the manifest. - Retired manifest fields for minimum versions, Project identity, profiles or
archetypes, capability modules, plugin declarations, and bindings are not
accepted. External Plugin metadata has its own schema-1 store. - Layout-8 path names describe the actual areas directly, including
systems.
No unpublishedsystems_contracts/systemsContractsalias remains. .assay/managed-files.jsonschema 1 is the independent no-clobber receipt for
fixed core assets. It owns generator/asset identity, baseline hashes,
protection, and executable metadata; the manifest does not.updatereconciles only fixed core files. Template output and reader-owned
Project artifacts remain outside managed overwrite behavior.- Global workspace discovery is an explicit schema-1 index under
~/.assay/workspaces. Onlyworkspace track,discover, andforgetwrite
it; lifecycle and read commands do not register, repair, or deduplicate
workspaces implicitly. The former global projects store is not read or
migrated.
Registry-canonical Systems
.assay/systems-registry.jsonschema 3 is the sole Project-local System
authority. The map key is the exact canonical selector; records hold only
locator, lifecycle, VCS/version observations, and supersedes edges.- Selectors are exact. Prefix fallback is removed.
- Assay does not create, parse, validate, refresh, move, or delete a
system.yaml; such a file is ordinary System-owned content. system update --pathchanges only the registry locator.system archive --applyis a logical registry transition and never moves or deletes System
bytes. The primary transition and supersedes graph remain registry operations.- Standalone/overlay conversion preserves registered System content as opaque
user/System bytes and rewrites only registry locators it owns.
Removed authorities and runtimes
- Native ADR is removed, including its index, commands, templates, provider
responsibility, Source hints, and Intent-promotion target. Current normative
contracts belong in native Specs; durable decisions and findings can remain
in reader-owned Project prose, Analyses, and Knowledge. - Iteration authority is removed: there is no layout path, command family, core
API/type, template/profile module, status/check projection, Knowledge
back-reference, conversion ownership, or root-discovery marker. Native Task
owns bounded future work.solveattempts andexploretrials remain
Template-specific user work areas, not Iteration records. - The native capability-module abstraction and product Intent are removed,
including commands, manifest fields, archetype modules, scaffolds, gates,
projections, events, capture/list/promotion/integrity, System authority,
templates, zones, and conversion behavior. External descriptor capability
requests remain opaque host metadata and grant no Assay authority. A manually
createdintent/or.assay/intent/directory is ordinary unowned content. - The built-in Trellis runtime, protocols, channels, hooks, migrations, memory,
plugin reconciliation, and execution surfaces are removed. Agent DAG,
dispatch, permissions, and activation stay with the host; Relay retains its
own fork/promotion semantics. - Manual/freeform event commands and public event-append/capture exports are
removed. Mutating core operations still append their automatic structured
events internally. .assay/VERSIONis removed. The exact framework version lives only in the
schema-4 manifest envelope.- There is no physical migration subsystem, native Intent compatibility layer,
or host execution runtime hidden behind the retained commands.
Narrowed Analysis and Knowledge vocabularies
analysis close --exitaccepts exactlyadopt,reject, orexperiment;
retired decision exits and ADR/Iteration coupling are absent.knowledge addaccepts exactlypattern,guide, ortroubleshooting;
retired Knowledge types and Iteration back-references are absent.
Breaking cutover boundary
- Repository installation and the distributable core/CLI packages require
Node.js >=22.13.0; repository workflows pin pnpm 11.3.0. - Assay 0.13 reads only the exact current workspace tuple
0.13.0+s4+l8; System operations additionally require registry r3. - v0.6.0 workspaces and every unpublished intermediate candidate fail closed
before semantic reads or writes. Core does not contain a legacy reader,
in-place upgrader, dual writer, or downgrade path. - Any retained workspace that must cross the boundary requires a separately
reviewed external exact-pair cutover tool. This release does not claim that a
real workspace migration was performed. - Package metadata is set to 0.13.0. This repository note does not claim npm
publication, tagging, deployment, or installation into a user environment.
Release verification
The repository release gate builds all packages, runs type checking, lint,
package tests, CLI smoke scenarios, disposable init/adopt flows, and the
committed public-example check. The public example is a sanitized generated
study workspace with no runtime ledgers or local systems registry.