TessemblyDocs
0.3.x · RFC3 GitHub

INTEGRATION & CONFORMANCE

Integration guide

Adopt only the capabilities you need and test the real request path. Consumers connect datasets and game engines.

Choose your components

ComponentResponsibility
tessembly-coreAST, errors and standard hold-supply state
tessembly-textCompact parse/format
tessembly-relationsLogic/count/window/occurrence evaluation and local proofs
tessembly-codecStandard pattern AST binary
tessembly-documentAdvanced declarations, environment, references and document binary
tessembly-cliFile commands and reference test ports
tessembly-conformanceIndependent tools for external consumers

Library consumers need not distribute the CLI, documentation site or conformance executables. The TCK does not import the product parser/evaluator to manufacture expected answers; it uses small independent oracles and fixed vectors.

Connect a test port to your application

shell
cargo build --locked --workspace
target/debug/tessembly-tck --report report.json -- my-host test-port
target/debug/tessembly-filter-tck --report filters.json -- my-host test-port

The compact port is tessembly.test-port.v1. Requests include id, protocol, profile and op. Operations cover capabilities, compile, enumerate_D, evaluate_U_witness, encode/decode, hold_step, check_adapter and resolve_config. stdout is JSON Lines only; send diagnostics to stderr.

json
{"id":1,"protocol":"tessembly.test-port.v1","profile":"tessembly.rfc3.order.v1","op":"compile","text":"P4:D(I<T&T)"}

Advanced documents use tessembly.document-test-port.v1 and the reference CLI doc-port: validate, roundtrip, project, decode, hold and resolve. project only projects a standard AST; it does not execute the environment. Carry the returned environment along with the projection.

Verify the real connection

Wire the test port through actual input, request compilation, execution boundary and output. Passing a separate test-only parser does not test the application. External developers provide GUI widget adapters for E2E tests.

Check that changing D/U, scope or NONE/EMPTY/occupied hold changes real output as required. Changing only hidden future supply must not affect a choice made from identical allowed observation histories. Branching after a legal reveal remains allowed.

Result contracts

StatusMeaning
INVALID_SYNTAX / INVALID_DOCUMENTSyntax or structure violation
CONFIG_CONFLICTExplicit environment conflict
UNSATEvidence of impossibility in the stated domain
NOT_CHECKEDNot sufficiently checked
UNSUPPORTED / UNSUPPORTED_STATECapability or state outside support
INCOMPLETEBounded work or cancellation prevented completion

Matching relations, legal supply, hold transitions and successful placements are different claims. Distinguish complete=true with exactly zero results from incomplete work. A use-order check is not a PC solution.

Consumer-owned integration envelope

Consumers load supplies from files/databases and pass them to Tessembly. Lookup, caching, setups, success metrics and policy indices remain host-owned. Tessembly processes supplied data and relations; it adds no Q1/M1/MATCH layer.

Return UNSUPPORTED for a required condition you cannot interpret. Dropping it or widening the supply is not equivalent conversion. Test supply/hold/visibility through the actual adapter path.