Description
Deterministic Property Fill maps known row fields or metadata into declared target properties through repeatable rules and transforms.
The behavior reads only configured sources, applies a supported extraction or transform, evaluates its guards, and returns a property diff when the rule matches. That diff follows the shared behavior apply path and the registry-backed value validator, so deterministic does not mean unvalidated. Re-running the same binding over the same row produces the same candidate value.
Selling Points
- Produces the same output for the same input.
- Requires no LLM, prompt, or inference budget.
- Still passes through normal schema and value validation.
- Makes each derived field traceable to a declared source and transform.
- Defers interpretation-heavy work to a separate, explicitly probabilistic feature.
User Story
As an administrator, I derive a repository slug or source classification from trusted metadata on every matching row. I bind a source field, extraction rule, target property, and guard to the Dotabase. As rows arrive, the behavior fills only matches and ordinary validation rejects values that do not fit the target. I walk away with consistent structured fields that can be filtered and audited without paying for or trusting a model.
Extension Surface
Configurable: bindings define sources, targets, extraction, transforms, and guards.
packages/dotabases/src/behaviors/deterministic-fill/index.ts is the concrete configuration boundary. Owners select from supported operations and schema keys; they do not execute arbitrary transformation code. The property registry remains the authority for the resulting value.
Capabilities & Limits
- Capability: Executes the scoped workflow described above through the cited live implementation paths.
- Capability: Preserves typed validation and applicable tenant, schema, lifecycle, or service boundaries.
- Limit: Rules can only express supported deterministic transforms; interpretation-heavy enrichment belongs to AI Property Fill. The feature can copy trusted values, extract bounded tokens, normalize supported formats, and conditionally fill declared fields. It does not understand prose, infer missing facts, or override read-only ownership. A rule with bad assumptions will repeat those assumptions consistently, so administrators remain responsible for mapping design.
Implementation Map
packages/dotabases/src/behaviors/deterministic-fill/index.tspackages/dotabases/src/services/apply-behavior-updates.tspackages/dotabases/src/properties/property-value-validator.ts