Parent: #13. Requirements: FR-PTY-001 through 003, FR-GDS-001 through 002, FR-TXN-001 through 003. Depends on #7, TS-202, TS-205, and TS-302.
Outcome
As a business user, I receive deterministic, versioned findings for missing material facts and exact strong-identifier evidence before any optional fuzzy/model candidate stage, so uncertainty can never silently become green.
In scope
- A finite, versioned material-fact policy by proposed action/activity, extending the governed TS-205 rule-bundle seam rather than accepting caller expressions/code/plugins.
- Required party roles and strong identifiers; goods description/specification/end user; route origin/destination/transit; payment participants/countries; and explicitly scoped not-applicable rules.
- Deterministic mapping from accepted rule evaluations to canonical
Finding, EvidenceRequirement, and Hold values without persisting a case state.
- An internal exact-identifier resolver over integrity-verified ACTIVE TS-202 snapshots. It returns exact source/snapshot/record/assertion provenance and never treats a name candidate as an identifier match.
- Synthetic fixtures for complete, incomplete, exact match, contradictory identifiers, ambiguous source data, candidate-only classification, not-applicable, stale/unavailable evidence, and optional matcher outage.
Acceptance
- Policy is immutable, versioned, bounded, effective-dated, owner/citation/fixture governed, and selected from the exact active bundle. No JSONPath/template/regex/script/import/plugin/network execution is caller-selectable.
- Every required material fact has one finite path and deterministic present/missing/not-applicable semantics. Absent facts are never inferred from neighboring text or schema defaults.
- Missing material facts produce stable OPEN P1 findings, named evidence requirements, and holds scoped to the proposed action. Output IDs/hashes/order are deterministic for exact input and version set.
- Exact identifier match and exact identifier conflict/ambiguity are distinct typed findings with exact accepted snapshot and assertion provenance. Multiple source records for one asserted identity fail closed as ambiguity.
- Legal name/alias similarity is never emitted as an exact match. An unavailable optional matcher cannot delete, downgrade, or rewrite deterministic findings and produces explicit incomplete-coverage evidence where applicable.
- HS/CN/TARIC/ECCN or category values remain
candidate_only; no code/category alone creates definitive classification, no-action, clearance, or human disposition.
UNKNOWN, MISSING, CONTRADICTORY, MATCH, CANDIDATE_ONLY, and explicit NOT_APPLICABLE remain distinguishable. NOT_APPLICABLE requires positive policy scope evidence, never absence.
- Source/rule/input identity and all cited locators are integrity-verified. Stale/unavailable/corrupt required evidence fails closed and cannot produce an empty-success assessment.
- Focused and repository-wide statement/branch coverage remain 100%; finite-policy codec/migration changes and PostgreSQL/Compose evidence are exercised in proportion to the affected durable boundary.
Explicit boundary
TS-303 produces deterministic canonical assessment components; TS-401 owns case persistence and derives state/business action from them. It adds no fuzzy matcher, LLM/model decision, human disposition, REST/MCP endpoint, or production legal coverage. TS-306 later broadens real goods/route/end-use/payment consistency rules; this story proves the bounded synthetic vertical seam.
Production required-field policy, supported legal nexus, source licences, identifier semantics and prioritization require named compliance/data owners. Until approved, only clearly labelled synthetic policy and source fixtures are executable.
Parent: #13. Requirements: FR-PTY-001 through 003, FR-GDS-001 through 002, FR-TXN-001 through 003. Depends on #7, TS-202, TS-205, and TS-302.
Outcome
As a business user, I receive deterministic, versioned findings for missing material facts and exact strong-identifier evidence before any optional fuzzy/model candidate stage, so uncertainty can never silently become green.
In scope
Finding,EvidenceRequirement, andHoldvalues without persisting a case state.Acceptance
candidate_only; no code/category alone creates definitive classification, no-action, clearance, or human disposition.UNKNOWN,MISSING,CONTRADICTORY,MATCH,CANDIDATE_ONLY, and explicitNOT_APPLICABLEremain distinguishable.NOT_APPLICABLErequires positive policy scope evidence, never absence.Explicit boundary
TS-303 produces deterministic canonical assessment components; TS-401 owns case persistence and derives state/business action from them. It adds no fuzzy matcher, LLM/model decision, human disposition, REST/MCP endpoint, or production legal coverage. TS-306 later broadens real goods/route/end-use/payment consistency rules; this story proves the bounded synthetic vertical seam.
Production required-field policy, supported legal nexus, source licences, identifier semantics and prioritization require named compliance/data owners. Until approved, only clearly labelled synthetic policy and source fixtures are executable.