Contract Anchors
packages/contracts/src/index.tsdefines graph, node, artifact, and package manifest schemas.packages/core/src/playbook-graph.tsvalidates graph reachability, transitions, artifacts, capabilities, and source references.packages/core/src/playbook-graph-package-loader.tsvalidates package loading, import safety, and manifest-to-graph alignment.@tessera/plugin-sdkprovides author ergonomics, includingdefinePlaybook, but it is not the canonical runtime contract.
Effect Nodes
Use first-classeffect nodes for mutating work such as workspace writes or connector-backed writes. An effect node declares:
effectId,adapterId, andcapabilitysideEffectaswriteorexternalapprovalandpreviewidempotencyandidempotencyKeyinputbindings for artifacts, paths, formats, and adapter payload
input.target with kind: "workspace", a package-relative path, and format: "markdown" | "json" | "csv" | "pdf". Legacy top-level input.path and input.format are still accepted for compatibility.
Connector-backed materialization uses input.target.kind: "external" and stores a connector output reference in effect evidence. Packages may declare the target, but Tessera adapters own commit, output reference, replay, and provenance.
CSV materialization is UTF-8 text with comma-separated rows. Fields containing commas, quotes, or newlines are quoted, and embedded quotes are doubled. PDF output uses the same preview, approval, commit, output reference, and replay semantics as other materialized files; rendering is owned by Tessera tooling or adapters, not by a package-local runner.