Skip to content

story TS-303: deterministic completeness and exact-identifier controls #22

Description

@veil-chow-fyaic

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    phase/1-mvpRequired or evaluated for the Phase 1 service MVPpriority/nowRefine or execute now for the current sprint/critical pathrisk/complianceLegal/compliance interpretation or control risksprint/1Sprint 1 walking skeleton and contractstatus/readyMeets Definition of Ready for sprint selectiontype/storySprint-sized user or operational outcome

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions