hyf

Context-aware query service for Radroots
git clone https://radroots.dev/git/hyf.git
Log | Files | Refs | README | LICENSE

commit 8d3064173a2bfd22b608bd40712bb9f195ea61b1
parent 9b08be5aa42c77599b40e534bafd6e71e9b91aeb
Author: triesap <tyson@radroots.org>
Date:   Mon, 21 Sep 2026 03:43:17 +0000

spec: add requirement traceability validation

Diffstat:
Mpixi.toml | 2++
Mtests/fixture_validator.mojo | 121+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Atests/requirements/hyf_v1_jev.requirements.json | 1584+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Atests/requirements/hyf_v1_jev.steps.json | 5477+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Atests/test_traceability.mojo | 95+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 7279 insertions(+), 0 deletions(-)

diff --git a/pixi.toml b/pixi.toml @@ -24,6 +24,7 @@ test-runtime = "mojo -I src tests/test_runtime_paths.mojo" test-repo-local-process = "mojo -I src tests/test_repo_local_process_contract.mojo" test-stdio = "mojo -I src tests/test_stdio_contract.mojo" test-provider-adapter = "mojo -I src -I tests tests/test_provider_adapter.mojo" +test-spec = "mojo -I src -I tests tests/test_traceability.mojo" smoke-max-local = "mojo -I src -I tests tests/max_local_operator_smoke.mojo" test-runtime-contract = { depends-on = [ "test-runtime", @@ -33,5 +34,6 @@ test-runtime-contract = { depends-on = [ test = { depends-on = [ "test-unit", "test-provider-adapter", + "test-spec", "test-runtime-contract", ] } diff --git a/tests/fixture_validator.mojo b/tests/fixture_validator.mojo @@ -198,3 +198,124 @@ def validate_fixture_corpus( ) return issues^ + + +def validate_requirement_traceability( + registry_path: String, manifest_path: String, steps_path: String +) raises -> List[FixtureValidationIssue]: + var issues = List[FixtureValidationIssue]() + var registry = loads(Path(registry_path).read_text()) + var manifest = loads(Path(manifest_path).read_text()) + var steps = loads(Path(steps_path).read_text()) + + var step_ids = List[String]() + for step in steps["steps"].array_items(): + step_ids.append(step["id"].string_value()) + + var case_ids = List[String]() + for case_entry in manifest["cases"].array_items(): + case_ids.append(case_entry["case_id"].string_value()) + + var requirement_ids = List[String]() + var requirements = registry["requirements"].array_items() + if len(requirements) == 0: + issues.append( + FixtureValidationIssue( + case_id="", rule="empty_registry", detail="no requirements" + ) + ) + for requirement in requirements: + var rid = requirement["id"].string_value() + var duplicate = False + for prior in requirement_ids: + if prior == rid: + duplicate = True + if duplicate: + issues.append( + FixtureValidationIssue( + case_id=rid, + rule="duplicate_requirement", + detail="duplicate requirement id", + ) + ) + requirement_ids.append(String(rid)) + + var method = requirement["verification_method"].string_value() + if method == "": + issues.append( + FixtureValidationIssue( + case_id=rid, + rule="missing_verification_method", + detail="verification_method is empty", + ) + ) + var impl_steps = requirement["implementation_steps"].array_items() + if len(impl_steps) == 0: + issues.append( + FixtureValidationIssue( + case_id=rid, + rule="uncovered_requirement", + detail="no implementation steps", + ) + ) + else: + for step in impl_steps: + var sid = step.string_value() + var found = False + for known in step_ids: + if known == sid: + found = True + if not found: + issues.append( + FixtureValidationIssue( + case_id=rid, + rule="unknown_step", + detail=sid, + ) + ) + var fixtures = requirement["fixture_ids"].array_items() + for fixture in fixtures: + var fid = fixture.string_value() + var found = False + for known in case_ids: + if known == fid: + found = True + if not found: + issues.append( + FixtureValidationIssue( + case_id=rid, + rule="dangling_fixture", + detail=fid, + ) + ) + + var step_seen = List[String]() + for step in steps["steps"].array_items(): + var sid = step["id"].string_value() + var duplicate = False + for prior in step_seen: + if prior == sid: + duplicate = True + if duplicate: + issues.append( + FixtureValidationIssue( + case_id=sid, rule="duplicate_step", detail="duplicate step id" + ) + ) + step_seen.append(String(sid)) + for dependency in step["dependencies"].array_items(): + var did = dependency.string_value() + var found = False + for known in step_ids: + if known == did: + found = True + if not found: + issues.append( + FixtureValidationIssue( + case_id=sid, + rule="dangling_dependency", + detail=did, + ) + ) + + return issues^ diff --git a/tests/requirements/hyf_v1_jev.requirements.json b/tests/requirements/hyf_v1_jev.requirements.json @@ -0,0 +1,1584 @@ +{ + "spec_id": "hyf_v1_jev", + "format_version": 1, + "requirements": [ + { + "id": "HYF-CORE-001", + "title": "Language and transport", + "status": "approved", + "requirement": "Keep the service core in Mojo and the canonical hyfd interface as stdio RPC; no Rust rewrite or HTTP ingress is authorized.", + "spec": "specs/ARCHITECTURE.md", + "verification_method": "architecture check and process integration", + "implementation_steps": [ + "S001", + "S012" + ], + "fixture_ids": [] + }, + { + "id": "HYF-CORE-002", + "title": "Business authority", + "status": "approved", + "requirement": "Keep authentication, durable business workflow, inventory, reservations, orders and notifications in owning application services; Hyf emits assessments without business mutations.", + "spec": "specs/ARCHITECTURE.md", + "verification_method": "architecture check, journey simulation and real-authority gate", + "implementation_steps": [ + "S014", + "S111", + "S131" + ], + "fixture_ids": [] + }, + { + "id": "HYF-CORE-003", + "title": "Typed independent layers", + "status": "approved", + "requirement": "Separate domain, application orchestration, provider adapter, runtime composition and transport; use explicit typed outcomes and no string-matched error control flow.", + "spec": "specs/ARCHITECTURE.md", + "verification_method": "unit tests and import-boundary review", + "implementation_steps": [ + "S007", + "S014", + "S016", + "S018", + "S039", + "S064", + "S065" + ], + "fixture_ids": [] + }, + { + "id": "HYF-CORE-004", + "title": "Spec-anchored scope", + "status": "approved", + "requirement": "Implement the three approved operations incrementally against durable specs without unrelated deferred features or speculative framework work.", + "spec": "specs/ARCHITECTURE.md", + "verification_method": "requirement traceability and per-commit review", + "implementation_steps": [ + "S002", + "S004", + "S010", + "S015", + "S137" + ], + "fixture_ids": [] + }, + { + "id": "HYF-CORE-005", + "title": "Compatibility", + "status": "approved", + "requirement": "Preserve existing supported wire behavior, capability semantics and max_local compatibility; new operations are additive or explicitly versioned.", + "spec": "specs/ARCHITECTURE.md", + "verification_method": "existing canonical wire fixtures and compatibility tests", + "implementation_steps": [ + "S003", + "S004", + "S053", + "S065", + "S101", + "S103", + "S104", + "S108", + "S109" + ], + "fixture_ids": [] + }, + { + "id": "HYF-CORE-006", + "title": "Repository authority", + "status": "approved", + "requirement": "Use repo-owned forge-agnostic validation, preserve applicable AGENTS and parent release authority; no capsule-local .github workflows.", + "spec": "specs/ARCHITECTURE.md", + "verification_method": "policy check and documented command review", + "implementation_steps": [ + "S001", + "S013", + "S014", + "S132" + ], + "fixture_ids": [] + }, + { + "id": "HYF-FARM-001", + "title": "Product-level claims", + "status": "approved", + "requirement": "Interpret multi-product updates as distinct evidence-backed claims rather than one global stock classification.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "domain and application fixtures", + "implementation_steps": [ + "S029", + "S067" + ], + "fixture_ids": [ + "FU001_multiple_crops", + "FU004_quantity_association" + ] + }, + { + "id": "HYF-FARM-002", + "title": "Claim status", + "status": "approved", + "requirement": "Distinguish reported offers, forecasts, unavailable supply, corrections and unclear status; never promote a forecast to confirmed inventory.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "domain and application fixtures", + "implementation_steps": [ + "S029", + "S067" + ], + "fixture_ids": [ + "FU001_multiple_crops", + "FU002_forecast", + "FU003_negation" + ] + }, + { + "id": "HYF-FARM-003", + "title": "Update operation semantics", + "status": "approved", + "requirement": "Differentiate addition, remaining balance, replacement, withdrawal and correction with a scoped target or unresolved operation.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "domain and journey fixtures", + "implementation_steps": [ + "S030", + "S069" + ], + "fixture_ids": [ + "FU005_addition", + "FU006_remaining", + "FU007_total" + ] + }, + { + "id": "HYF-FARM-004", + "title": "Unconfirmed quantities", + "status": "approved", + "requirement": "Reported quantity is not automatically verified unreserved stock; preserve approximation and uncertainty.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "domain and journey fixtures", + "implementation_steps": [ + "S022", + "S029", + "S068", + "S071" + ], + "fixture_ids": [ + "DM004_approximation_retained", + "FU002_forecast", + "FU010_unreserved_unknown", + "MT002_unknown_quantity" + ] + }, + { + "id": "HYF-FARM-005", + "title": "Review and material clarification", + "status": "approved", + "requirement": "Return reviewable proposed changes and material clarification targets; missing optional price does not block drafting while ambiguous withdrawal target blocks application.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "application and consumer-contract fixtures", + "implementation_steps": [ + "S031", + "S072", + "S111" + ], + "fixture_ids": [ + "FU009_optional_price", + "FU011_ambiguous_withdrawal", + "JR001_farm_review_handoff" + ] + }, + { + "id": "HYF-FARM-006", + "title": "Immutable clarification history", + "status": "approved", + "requirement": "Treat correction and clarification as explicit revisioned new evidence; do not overwrite original text or rely on hidden memory.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "domain and journey fixtures", + "implementation_steps": [ + "S032", + "S073", + "S079", + "S111" + ], + "fixture_ids": [ + "FU012_linked_clarification", + "FU013_stale_clarification", + "JR001_farm_review_handoff" + ] + }, + { + "id": "HYF-FARM-007", + "title": "Scoped withdrawal", + "status": "approved", + "requirement": "Do not expand a product/listing withdrawal to unrelated farm stock; require sufficient authorized target evidence.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "domain and security fixtures", + "implementation_steps": [ + "S030", + "S070" + ], + "fixture_ids": [ + "FU011_ambiguous_withdrawal" + ] + }, + { + "id": "HYF-FARM-008", + "title": "Unknown products", + "status": "approved", + "requirement": "Unknown or unsupported product terms remain unresolved instead of forced nearest-catalogue assignments.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "candidate-discovery and interpretation fixtures", + "implementation_steps": [ + "S028", + "S042", + "S075" + ], + "fixture_ids": [ + "FU008_unknown_product" + ] + }, + { + "id": "HYF-FARM-009", + "title": "No publication side effect", + "status": "approved", + "requirement": "farm_update.interpret returns proposals only; confirmation and version-checked idempotent application belong to the authority.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "architecture check and real-authority integration gate", + "implementation_steps": [ + "S069", + "S072", + "S074", + "S105", + "S111" + ], + "fixture_ids": [ + "FU009_optional_price", + "FU014_provider_timeout", + "FU015_invalid_answer", + "JR001_farm_review_handoff" + ] + }, + { + "id": "HYF-BUY-001", + "title": "Multiple demand lines", + "status": "approved", + "requirement": "buyer_request.interpret preserves multiple products and demand lines with correct condition applicability.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "domain and application fixtures", + "implementation_steps": [ + "S033", + "S075", + "S092", + "S106" + ], + "fixture_ids": [ + "BR001_multiple_lines", + "MT015_shared_lot_two_lines" + ] + }, + { + "id": "HYF-BUY-002", + "title": "Constraint strength", + "status": "approved", + "requirement": "Differentiate mandatory requirements, preferences, explicit exclusions and permitted alternatives, including negation.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "domain and application fixtures", + "implementation_steps": [ + "S033", + "S043", + "S076", + "S085", + "S106" + ], + "fixture_ids": [ + "BR002_fulfillment_negation", + "BR003_delivery_preference", + "BR004_seconds_permitted" + ] + }, + { + "id": "HYF-BUY-003", + "title": "Missing is not a decision", + "status": "approved", + "requirement": "Not-stated and contradictory conditions remain visible; missing substitution permission is not automatic permission or prohibition.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "domain and application fixtures", + "implementation_steps": [ + "S007", + "S018", + "S033", + "S076", + "S078", + "S080", + "S083", + "S093" + ], + "fixture_ids": [ + "DM002_unknown_not_zero", + "BR005_substitution_not_stated", + "BR006_conflicting_conditions", + "BR007_missing_quantity", + "BR009_provider_failure" + ] + }, + { + "id": "HYF-BUY-004", + "title": "Typed matching input", + "status": "approved", + "requirement": "buyer_request.match consumes the typed need and its revisions rather than reparsing rewritten query text.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "application integration", + "implementation_steps": [ + "S079", + "S081", + "S107", + "S112" + ], + "fixture_ids": [ + "BR008_no_reparse", + "JR002_buyer_match_revalidate" + ] + }, + { + "id": "HYF-BUY-005", + "title": "Reviewable intent", + "status": "approved", + "requirement": "Expose material unresolved fields and confirmations for the host without creating orders or hidden state.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "consumer-contract and journey fixtures", + "implementation_steps": [ + "S031", + "S078", + "S079", + "S106", + "S112" + ], + "fixture_ids": [ + "BR007_missing_quantity" + ] + }, + { + "id": "HYF-BUY-006", + "title": "Public surfaces", + "status": "approved", + "requirement": "Provide farm_update.interpret, buyer_request.interpret and buyer_request.match with stable product semantics, not a generic Jev endpoint.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "API schema, discovery and process tests", + "implementation_steps": [ + "S004", + "S053", + "S104", + "S105", + "S134" + ], + "fixture_ids": [] + }, + { + "id": "HYF-DATA-001", + "title": "Trusted source identity", + "status": "approved", + "requirement": "Original text, actor/source IDs, revisions and timestamps come from trusted application context and cannot be generated or overridden by provider output.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "unit, adapter and security fixtures", + "implementation_steps": [ + "S006", + "S016", + "S017", + "S045", + "S049", + "S066", + "S115" + ], + "fixture_ids": [] + }, + { + "id": "HYF-DATA-002", + "title": "Evidence integrity", + "status": "approved", + "requirement": "Every interpreted field links to authorized evidence or declared deterministic derivation; validate exact source revisions and span-offset conventions.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "Unicode/span/reference fixtures", + "implementation_steps": [ + "S006", + "S017", + "S042", + "S068", + "S075" + ], + "fixture_ids": [ + "DM014_unicode_evidence", + "DM015_wrong_revision_evidence", + "FU004_quantity_association" + ] + }, + { + "id": "HYF-DATA-003", + "title": "Exact supported values", + "status": "approved", + "requirement": "Use explicit bounded exact decimal/fixed arithmetic where needed; define overflow, precision and rounding, and keep unknown distinct from zero.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "unit and property tests", + "implementation_steps": [ + "S005", + "S018", + "S019", + "S020", + "S023", + "S077", + "S088", + "S118" + ], + "fixture_ids": [ + "DM001_exact_quantity", + "DM002_unknown_not_zero", + "DM003_mass_conversion", + "DM016_numeric_overflow", + "MT003_exact_available" + ] + }, + { + "id": "HYF-DATA-004", + "title": "Unit and pack semantics", + "status": "approved", + "requirement": "Normalize only compatible dimensions and trusted pack conversions; unknown pack size remains unresolved.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "unit and matching fixtures", + "implementation_steps": [ + "S005", + "S020", + "S021", + "S068", + "S077" + ], + "fixture_ids": [ + "DM003_mass_conversion", + "DM005_missing_pack_weight", + "DM006_wrong_product_pack", + "DM007_dimension_mismatch" + ] + }, + { + "id": "HYF-DATA-005", + "title": "Approximation semantics", + "status": "approved", + "requirement": "Preserve approximate wording without inventing numerical bounds or treating conversion precision as source precision.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "unit and interpretation fixtures", + "implementation_steps": [ + "S005", + "S022" + ], + "fixture_ids": [ + "DM004_approximation_retained" + ] + }, + { + "id": "HYF-DATA-006", + "title": "Money semantics", + "status": "approved", + "requirement": "Keep amount, currency, price basis, fees and minimum-order conditions distinct; missing price is unknown.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "unit and matching fixtures", + "implementation_steps": [ + "S005", + "S023", + "S077", + "S087" + ], + "fixture_ids": [ + "DM008_money_unknown", + "DM009_currency_mismatch" + ] + }, + { + "id": "HYF-DATA-007", + "title": "Source-anchored time", + "status": "approved", + "requirement": "Resolve dates from source time and known zone/locale, preserve date-only/ambiguity semantics, and keep wall and monotonic time roles separate.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "time and replay fixtures", + "implementation_steps": [ + "S006", + "S024", + "S025", + "S026", + "S071", + "S077", + "S086" + ], + "fixture_ids": [ + "DM010_relative_date_replay", + "DM011_missing_zone", + "DM012_ambiguous_local_time", + "MT010_nonoverlap" + ] + }, + { + "id": "HYF-DATA-008", + "title": "Freshness semantics", + "status": "approved", + "requirement": "Separate record recency, harvest age, availability and verification time; one cannot stand in for another.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "domain and matching fixtures", + "implementation_steps": [ + "S006", + "S024", + "S027", + "S086" + ], + "fixture_ids": [ + "DM013_record_not_harvest" + ] + }, + { + "id": "HYF-DATA-009", + "title": "Version provenance", + "status": "approved", + "requirement": "Record actual source/need/supply, schema, taxonomy, normalization, model, question and policy versions used.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "domain, adapter and process fixtures", + "implementation_steps": [ + "S011", + "S016", + "S021", + "S026", + "S028", + "S034", + "S038", + "S049", + "S117" + ], + "fixture_ids": [] + }, + { + "id": "HYF-DATA-010", + "title": "Conflicts and revisions", + "status": "approved", + "requirement": "Detect conflicting or stale records and preserve correction links rather than last-response-wins; external writes use expected versions.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "domain fixtures and real-authority gate", + "implementation_steps": [ + "S006", + "S030", + "S032", + "S034", + "S070", + "S073", + "S082", + "S113" + ], + "fixture_ids": [ + "DM015_wrong_revision_evidence", + "FU012_linked_clarification", + "FU013_stale_clarification", + "MT014_conflicting_revisions", + "JR003_duplicate_acceptance", + "JR004_stale_acceptance" + ] + }, + { + "id": "HYF-MATCH-001", + "title": "Three-way checks", + "status": "approved", + "requirement": "Each applicable mandatory check is pass, fail or unknown; any fail makes ineligible, otherwise unknown makes conditional, otherwise eligible.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "unit, property and application fixtures", + "implementation_steps": [ + "S007", + "S035", + "S083", + "S084", + "S085", + "S086", + "S087", + "S088", + "S089", + "S100", + "S118" + ], + "fixture_ids": [ + "MT001_shortage", + "MT002_unknown_quantity", + "MT003_exact_available", + "MT005_fail_dominates_unknown", + "MT006_unknown_dominates_pass", + "MT007_optional_missing", + "MT008_delivery_mismatch", + "MT009_unknown_area", + "MT010_nonoverlap" + ] + }, + { + "id": "HYF-MATCH-002", + "title": "Mandatory precedence", + "status": "approved", + "requirement": "No semantic score or preference can override a failed mandatory condition; optional unstated preferences do not create blockers.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "property and adversarial fixtures", + "implementation_steps": [ + "S035", + "S083", + "S085", + "S089", + "S098", + "S118" + ], + "fixture_ids": [ + "MT001_shortage", + "MT004_wrong_product_high_score", + "MT007_optional_missing" + ] + }, + { + "id": "HYF-MATCH-003", + "title": "Snapshot scope", + "status": "approved", + "requirement": "Evaluate only bounded authorized supplied records and identify exact revisions and coverage limitations.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "domain, security and process fixtures", + "implementation_steps": [ + "S027", + "S034", + "S037", + "S081", + "S107", + "S114" + ], + "fixture_ids": [ + "SC001_cross_tenant" + ] + }, + { + "id": "HYF-MATCH-004", + "title": "Supported plan mode", + "status": "approved", + "requirement": "Produce bounded single-supplier compatible-lot plans; label unsupported multi-supplier/planner modes rather than global unavailability.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "allocation and coverage fixtures", + "implementation_steps": [ + "S036", + "S090", + "S091", + "S094", + "S107", + "S126" + ], + "fixture_ids": [ + "MT012_two_compatible_lots", + "MT017_multi_supplier_unsupported" + ] + }, + { + "id": "HYF-MATCH-005", + "title": "Allocation conservation", + "status": "approved", + "requirement": "Within a plan, allocations across all lines cannot exceed underlying lot stock; reject/resolve duplicate conflicting records.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "unit, property and independent-oracle tests", + "implementation_steps": [ + "S036", + "S082", + "S091", + "S092", + "S119" + ], + "fixture_ids": [ + "MT012_two_compatible_lots", + "MT013_duplicate_lot", + "MT014_conflicting_revisions", + "MT015_shared_lot_two_lines" + ] + }, + { + "id": "HYF-MATCH-006", + "title": "Partial fulfillment policy", + "status": "approved", + "requirement": "Shortage fails when partial fulfillment is disallowed; any partial plan requires explicit buyer permission and clear uncovered demand.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "allocation and application fixtures", + "implementation_steps": [ + "S088", + "S093" + ], + "fixture_ids": [ + "MT001_shortage", + "MT016_partial_allowed" + ] + }, + { + "id": "HYF-MATCH-007", + "title": "Alternative plan semantics", + "status": "approved", + "requirement": "Alternative plans are not simultaneous commitments even if they reuse stock; output is never a reservation.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "allocation and consumer-contract fixtures", + "implementation_steps": [ + "S036", + "S094", + "S099", + "S112" + ], + "fixture_ids": [ + "MT019_alternative_plans" + ] + }, + { + "id": "HYF-MATCH-008", + "title": "Evidence before scoring", + "status": "approved", + "requirement": "Separate evidence sufficiency from suitability; do not use unknown as a score midpoint or promote uncertain mandatory premises silently.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "domain and provider fixtures", + "implementation_steps": [ + "S071", + "S084", + "S090", + "S095", + "S096" + ], + "fixture_ids": [ + "MT011_certification_unverified", + "MT020_unknown_not_midpoint" + ] + }, + { + "id": "HYF-MATCH-009", + "title": "Stable preference composition", + "status": "approved", + "requirement": "Normalize rubric scores deliberately, compose versioned preferences and use stable deterministic tie-breaking without representing success probabilities.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "unit/property/ranking fixtures", + "implementation_steps": [ + "S097", + "S098", + "S119" + ], + "fixture_ids": [ + "MT021_score_normalization", + "MT022_stable_ties" + ] + }, + { + "id": "HYF-MATCH-010", + "title": "No-market-claim overreach", + "status": "approved", + "requirement": "No eligible result means none within supplied/evaluated scope; retrieval truncation and unsupported planning are explicit limitations.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "coverage and consumer-contract fixtures", + "implementation_steps": [ + "S037", + "S094", + "S099", + "S134" + ], + "fixture_ids": [ + "MT017_multi_supplier_unsupported", + "MT018_truncated_retrieval" + ] + }, + { + "id": "HYF-MATCH-011", + "title": "Revalidate before commitment", + "status": "approved", + "requirement": "Owning service must revalidate current inventory and reserve atomically under its transaction policy; Hyf does not implement that authority.", + "spec": "specs/DATA_MODEL.md", + "verification_method": "journey simulation and real-authority gate", + "implementation_steps": [ + "S113", + "S131" + ], + "fixture_ids": [ + "JR002_buyer_match_revalidate", + "JR005_stock_race" + ] + }, + { + "id": "HYF-JEV-001", + "title": "Dedicated provider adapter", + "status": "approved", + "requirement": "Use a dedicated TypeSafe evaluation adapter rather than repointing max_local chat completions; keep provider wire types out of public business contracts.", + "spec": "specs/PROVIDER_JEV.md", + "verification_method": "adapter and architecture tests", + "implementation_steps": [ + "S039", + "S044", + "S052", + "S060" + ], + "fixture_ids": [] + }, + { + "id": "HYF-JEV-002", + "title": "Bounded interpretation", + "status": "approved", + "requirement": "Use versioned bounded choices/propositions/scores; candidate discovery and value normalization remain explicit stages.", + "spec": "specs/PROVIDER_JEV.md", + "verification_method": "builder, domain and live-evaluation gates", + "implementation_steps": [ + "S039", + "S042", + "S043", + "S044", + "S067", + "S095" + ], + "fixture_ids": [] + }, + { + "id": "HYF-JEV-003", + "title": "Correct question dependencies", + "status": "approved", + "requirement": "Only batch independent questions against relevant shared state; dependent stages are separate and correlated outputs are not independent corroboration.", + "spec": "specs/PROVIDER_JEV.md", + "verification_method": "request-plan and evaluation review", + "implementation_steps": [ + "S051" + ], + "fixture_ids": [] + }, + { + "id": "HYF-JEV-004", + "title": "Strict answer contracts", + "status": "approved", + "requirement": "Validate expected answer IDs/types, choices, finite values, probability distributions, rubric mapping and actual model version; fail safely on invalid responses.", + "spec": "specs/PROVIDER_JEV.md", + "verification_method": "positive/negative adapter fixtures", + "implementation_steps": [ + "S045", + "S046", + "S047", + "S059", + "S121" + ], + "fixture_ids": [ + "PV001_valid_all_types", + "PV002_missing_answer", + "PV003_extra_answer", + "PV004_wrong_type", + "PV005_unknown_choice", + "PV006_bad_distribution_sum", + "PV007_score_out_of_range", + "PV008_wrong_legend", + "PV009_model_mismatch", + "PV010_noul_out_of_range", + "PV011_missing_level", + "PV012_confidence_out_of_range", + "PV021_invalid_json_bytes", + "PV022_nan_bytes" + ] + }, + { + "id": "HYF-JEV-005", + "title": "Score range handling", + "status": "approved", + "requirement": "Handle zero-indexed score levels and normalize by the actual rubric; Noul has no required confidence field.", + "spec": "specs/PROVIDER_JEV.md", + "verification_method": "adapter and numeric fixtures", + "implementation_steps": [ + "S045", + "S046", + "S049", + "S097" + ], + "fixture_ids": [ + "MT021_score_normalization", + "PV001_valid_all_types", + "PV002_missing_answer", + "PV003_extra_answer", + "PV004_wrong_type", + "PV005_unknown_choice", + "PV006_bad_distribution_sum", + "PV007_score_out_of_range", + "PV008_wrong_legend", + "PV009_model_mismatch", + "PV010_noul_out_of_range", + "PV011_missing_level", + "PV012_confidence_out_of_range" + ] + }, + { + "id": "HYF-JEV-006", + "title": "Pinned evaluation configuration", + "status": "approved", + "requirement": "Pin model/question/policy/taxonomy/schema versions and evaluate upgrades explicitly; never follow aliases silently in production.", + "spec": "specs/PROVIDER_JEV.md", + "verification_method": "configuration, provenance and model-promotion tests", + "implementation_steps": [ + "S043", + "S047", + "S127", + "S133" + ], + "fixture_ids": [] + }, + { + "id": "HYF-JEV-007", + "title": "Semantic not arithmetic authority", + "status": "approved", + "requirement": "Keep arithmetic/date resolution/authorization and all business actions out of model judgments.", + "spec": "specs/PROVIDER_JEV.md", + "verification_method": "architecture, domain and adversarial fixtures", + "implementation_steps": [ + "S096" + ], + "fixture_ids": [] + }, + { + "id": "HYF-JEV-008", + "title": "Safe provider failure", + "status": "approved", + "requirement": "Interpretation failures remain unconfirmed/unresolved or explicit errors; only semantically safe labeled ranking fallback is allowed.", + "spec": "specs/PROVIDER_JEV.md", + "verification_method": "application and provider-failure fixtures", + "implementation_steps": [ + "S007", + "S038", + "S048", + "S062", + "S065", + "S074", + "S080", + "S100", + "S108", + "S133" + ], + "fixture_ids": [ + "FU014_provider_timeout", + "FU015_invalid_answer", + "BR009_provider_failure", + "MT023_ranking_outage", + "PV013_auth_no_retry", + "PV014_validation_no_retry", + "PV015_capacity_retry", + "PV016_overload_retry", + "SC012_provider_disabled" + ] + }, + { + "id": "HYF-JEV-009", + "title": "Provider request minimization", + "status": "approved", + "requirement": "Send only authorized relevant content, with server-controlled instructions/model/configuration and bounded question/candidate/state sizes.", + "spec": "specs/PROVIDER_JEV.md", + "verification_method": "request-contract and privacy fixtures", + "implementation_steps": [ + "S044", + "S050", + "S051", + "S089", + "S096" + ], + "fixture_ids": [ + "PV020_wrong_request_state", + "SC004_state_minimization" + ] + }, + { + "id": "HYF-JEV-010", + "title": "Live-model gate", + "status": "approved", + "requirement": "Separate opt-in account smoke and real raw-input semantic evaluation from deterministic software correctness; use independent labels and controlled holdouts.", + "spec": "specs/PROVIDER_JEV.md", + "verification_method": "evaluation harness and external release evidence", + "implementation_steps": [ + "S127", + "S128", + "S129" + ], + "fixture_ids": [] + }, + { + "id": "HYF-RUN-001", + "title": "Persistent framing", + "status": "approved", + "requirement": "Process multiple newline-delimited JSON requests until EOF, handle fragmentation/coalescing and flush responses without stdout diagnostics.", + "spec": "specs/NONFUNCTIONAL_REQUIREMENTS.md", + "verification_method": "stdio process fixtures", + "implementation_steps": [ + "S101", + "S102", + "S110" + ], + "fixture_ids": [ + "PR001_persistent", + "PR002_valid_invalid_valid", + "PR003_fragmented", + "PR004_coalesced", + "PR005_escaped_newline", + "PR006_size_limit", + "PR007_partial_eof", + "PR008_stderr_separation", + "PR009_shutdown_cleanup", + "PR010_one_inflight" + ] + }, + { + "id": "HYF-RUN-002", + "title": "Recovery and limits", + "status": "approved", + "requirement": "Recover after malformed frames when boundaries are known; bound input/depth/output and fail or close safely on unrecoverable framing.", + "spec": "specs/NONFUNCTIONAL_REQUIREMENTS.md", + "verification_method": "raw protocol and resource fixtures", + "implementation_steps": [ + "S082", + "S098", + "S101", + "S103", + "S121", + "S126" + ], + "fixture_ids": [ + "PR001_persistent", + "PR002_valid_invalid_valid", + "PR003_fragmented", + "PR004_coalesced", + "PR005_escaped_newline", + "PR006_size_limit", + "PR007_partial_eof", + "PR008_stderr_separation", + "PR009_shutdown_cleanup", + "PR010_one_inflight" + ] + }, + { + "id": "HYF-RUN-003", + "title": "Single in-flight request", + "status": "approved", + "requirement": "Initially support one in-flight business request per process with host-owned bounded pooling; do not invent unnecessary multiplexing.", + "spec": "specs/NONFUNCTIONAL_REQUIREMENTS.md", + "verification_method": "process and lifecycle tests", + "implementation_steps": [ + "S102" + ], + "fixture_ids": [] + }, + { + "id": "HYF-RUN-004", + "title": "Shared deadline", + "status": "approved", + "requirement": "All phases consume one server-capped remaining budget using monotonic elapsed time; host queuing does not reset it.", + "spec": "specs/NONFUNCTIONAL_REQUIREMENTS.md", + "verification_method": "virtual-time and process tests", + "implementation_steps": [ + "S040", + "S051", + "S055", + "S060", + "S062", + "S074", + "S080" + ], + "fixture_ids": [ + "PV017_no_remaining_budget", + "RT001_shared_budget" + ] + }, + { + "id": "HYF-RUN-005", + "title": "Bounded retries and circuits", + "status": "approved", + "requirement": "Classify permanent/transient errors, bound retries/backoff/queues, avoid per-request health calls, and distinguish liveness from provider readiness.", + "spec": "specs/NONFUNCTIONAL_REQUIREMENTS.md", + "verification_method": "virtual-time and transport fixtures", + "implementation_steps": [ + "S048", + "S056", + "S057", + "S062" + ], + "fixture_ids": [ + "PV013_auth_no_retry", + "PV014_validation_no_retry", + "PV015_capacity_retry", + "PV016_overload_retry", + "PV017_no_remaining_budget", + "RT002_circuit_liveness" + ] + }, + { + "id": "HYF-RUN-006", + "title": "Configuration and flags", + "status": "approved", + "requirement": "Separate implementation support, provider configuration, permission, readiness and per-operation enablement; validate invalid combinations.", + "spec": "specs/NONFUNCTIONAL_REQUIREMENTS.md", + "verification_method": "runtime/discovery matrix tests", + "implementation_steps": [ + "S052", + "S053", + "S054", + "S064", + "S104", + "S108", + "S136" + ], + "fixture_ids": [ + "SC012_provider_disabled" + ] + }, + { + "id": "HYF-RUN-007", + "title": "Cleanup and cancellation", + "status": "approved", + "requirement": "Bound waits, close/reap resources and report local cancellation honestly without claiming remote computation or charges stopped.", + "spec": "specs/NONFUNCTIONAL_REQUIREMENTS.md", + "verification_method": "transport, process and soak tests", + "implementation_steps": [ + "S059", + "S063", + "S102", + "S110", + "S125" + ], + "fixture_ids": [ + "PR001_persistent", + "PR002_valid_invalid_valid", + "PR003_fragmented", + "PR004_coalesced", + "PR005_escaped_newline", + "PR006_size_limit", + "PR007_partial_eof", + "PR008_stderr_separation", + "PR009_shutdown_cleanup", + "PR010_one_inflight", + "RT003_resource_soak" + ] + }, + { + "id": "HYF-RUN-008", + "title": "Observability", + "status": "approved", + "requirement": "Emit safe bounded reason/trace/version/degraded diagnostics; no secrets or unrestricted private text, no unbounded metric label cardinality.", + "spec": "specs/NONFUNCTIONAL_REQUIREMENTS.md", + "verification_method": "redaction and telemetry fixtures", + "implementation_steps": [ + "S038", + "S048", + "S057", + "S100", + "S116" + ], + "fixture_ids": [ + "MT023_ranking_outage", + "SC005_secret_redaction" + ] + }, + { + "id": "HYF-RUN-009", + "title": "Optional caching policy", + "status": "approved", + "requirement": "Caching is optional; if introduced it is bounded, tenant/source/context/version keyed and invalidated safely; it never implies reservation.", + "spec": "specs/NONFUNCTIONAL_REQUIREMENTS.md", + "verification_method": "conditional cache tests or no-cache architecture evidence", + "implementation_steps": [ + "S117" + ], + "fixture_ids": [ + "RT004_no_cache_or_isolated_cache" + ] + }, + { + "id": "HYF-RUN-010", + "title": "Measured objectives", + "status": "approved", + "requirement": "Freeze resource/SLO/cost/quality budgets from measured pilot evidence before launch; no fabricated numeric acceptance claims.", + "spec": "specs/NONFUNCTIONAL_REQUIREMENTS.md", + "verification_method": "load reports and owner release gate", + "implementation_steps": [ + "S055", + "S125", + "S126", + "S130" + ], + "fixture_ids": [ + "RT003_resource_soak" + ] + }, + { + "id": "HYF-SEC-001", + "title": "Trusted host authorization", + "status": "approved", + "requirement": "A consumer string or end-user tenant claim is not authentication; use the real host trust boundary and reject inconsistent/cross-scope context.", + "spec": "specs/NONFUNCTIONAL_REQUIREMENTS.md", + "verification_method": "security fixtures and deployment gate", + "implementation_steps": [ + "S066", + "S070", + "S081", + "S114", + "S117" + ], + "fixture_ids": [ + "SC001_cross_tenant", + "SC002_consumer_not_auth" + ] + }, + { + "id": "HYF-SEC-002", + "title": "Source text is data", + "status": "approved", + "requirement": "Source text cannot select endpoints, alter policy, fetch arbitrary URLs, invoke tools or elevate privileges.", + "spec": "specs/NONFUNCTIONAL_REQUIREMENTS.md", + "verification_method": "injection/adversarial fixtures", + "implementation_steps": [ + "S066", + "S115" + ], + "fixture_ids": [ + "SC003_instruction_in_source", + "SC010_request_endpoint_override" + ] + }, + { + "id": "HYF-SEC-003", + "title": "External HTTPS", + "status": "approved", + "requirement": "External Jev transport validates TLS certificates/hostnames and redirect credential policy; local test overrides cannot weaken production behavior.", + "spec": "specs/NONFUNCTIONAL_REQUIREMENTS.md", + "verification_method": "local TLS and configuration fixtures", + "implementation_steps": [ + "S060", + "S061" + ], + "fixture_ids": [ + "SC006_external_plaintext", + "SC007_wrong_tls_host", + "SC008_untrusted_tls_ca", + "SC009_redirect_secret" + ] + }, + { + "id": "HYF-SEC-004", + "title": "Privacy and retention", + "status": "approved", + "requirement": "Minimize provider payloads and evidence disclosure; respect host/provider approved retention instead of indefinite raw audit copies.", + "spec": "specs/NONFUNCTIONAL_REQUIREMENTS.md", + "verification_method": "privacy fixtures and account release gate", + "implementation_steps": [ + "S050", + "S099", + "S114", + "S116", + "S129" + ], + "fixture_ids": [ + "SC004_state_minimization" + ] + }, + { + "id": "HYF-SEC-005", + "title": "Secrets and configuration", + "status": "approved", + "requirement": "Credentials/endpoints/model are server-controlled, sanitized in tests and never leaked in errors/logs or committed as real secrets.", + "spec": "specs/NONFUNCTIONAL_REQUIREMENTS.md", + "verification_method": "secret/redaction/configuration checks", + "implementation_steps": [ + "S050", + "S052", + "S054", + "S061", + "S116", + "S122" + ], + "fixture_ids": [ + "SC005_secret_redaction", + "SC009_redirect_secret", + "SC010_request_endpoint_override", + "SC011_offline_secret_env" + ] + }, + { + "id": "HYF-TEST-001", + "title": "Canonical fixtures", + "status": "approved", + "requirement": "Version acceptance cases with requirements, fixed context, expectations, forbidden behavior and explicit synthetic/recorded provenance.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "fixture-schema and traceability checks", + "implementation_steps": [ + "S003", + "S008", + "S009" + ], + "fixture_ids": [] + }, + { + "id": "HYF-TEST-002", + "title": "One shared authority", + "status": "approved", + "requirement": "Preserve declared parent shared-wire authority with offline local mirror; keep Hyf-local test families separate.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "manifest/sync and parent gate", + "implementation_steps": [ + "S003", + "S109", + "S132" + ], + "fixture_ids": [] + }, + { + "id": "HYF-TEST-003", + "title": "Fixture validator integrity", + "status": "approved", + "requirement": "Reject duplicate IDs, missing references/files, unknown assertion operators and empty expectations; test the validator negatively.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "validator unit tests", + "implementation_steps": [ + "S009", + "S010", + "S124" + ], + "fixture_ids": [] + }, + { + "id": "HYF-TEST-004", + "title": "Hermetic local execution", + "status": "approved", + "requirement": "After dependency provisioning, default build/tests require no external network, account, secrets, GPU, model server or parent checkout.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "offline isolation and process integration", + "implementation_steps": [ + "S061", + "S122", + "S136" + ], + "fixture_ids": [ + "SC011_offline_secret_env" + ] + }, + { + "id": "HYF-TEST-005", + "title": "Production path coverage", + "status": "approved", + "requirement": "Exercise actual domain/application/adapter/HTTP/stdio code using controlled external boundaries rather than a parallel fake service.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "unit/loopback/process suites", + "implementation_steps": [ + "S041", + "S058", + "S064", + "S105", + "S106", + "S107" + ], + "fixture_ids": [] + }, + { + "id": "HYF-TEST-006", + "title": "Strict scripted provider", + "status": "approved", + "requirement": "Validate outbound request semantics and call counts/order; fail unmatched/unconsumed scripts and prohibit live fallback.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "harness negative and provider integration tests", + "implementation_steps": [ + "S041", + "S058" + ], + "fixture_ids": [ + "PV018_unexpected_call", + "PV019_missing_call", + "PV020_wrong_request_state" + ] + }, + { + "id": "HYF-TEST-007", + "title": "Determinism controls", + "status": "approved", + "requirement": "Control clocks/IDs/seeds/config/files/ports/scheduling and isolate cleanup; no sleep-based readiness or reserve-rebind races.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "harness unit/process tests", + "implementation_steps": [ + "S025", + "S040", + "S056", + "S058", + "S059", + "S063", + "S110", + "S122" + ], + "fixture_ids": [] + }, + { + "id": "HYF-TEST-008", + "title": "Independent oracles", + "status": "approved", + "requirement": "Use reviewed expectations and independent small allocation oracles, not production self-comparison or model output as ground truth.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "review and oracle tests", + "implementation_steps": [ + "S011", + "S019", + "S091", + "S092", + "S119", + "S120", + "S128" + ], + "fixture_ids": [] + }, + { + "id": "HYF-TEST-009", + "title": "Properties and regressions", + "status": "approved", + "requirement": "Test conservation/precedence/uncertainty/order/unit/revision properties with bounded seeds and saved minimal regressions.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "property and targeted fault-seeding tests", + "implementation_steps": [ + "S118", + "S119", + "S120", + "S121", + "S123" + ], + "fixture_ids": [] + }, + { + "id": "HYF-TEST-010", + "title": "Golden discipline", + "status": "approved", + "requirement": "Exact business expectations include forbidden extras; tolerances are explicit and golden changes require requirement review.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "assertion tests and review", + "implementation_steps": [ + "S008", + "S011", + "S072" + ], + "fixture_ids": [] + }, + { + "id": "HYF-TEST-011", + "title": "Planned versus executed", + "status": "approved", + "requirement": "Planned cases are not passed tests; activate each at its checkpoint and require all mandatory cases at completion without silent skips.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "activation and completion checks", + "implementation_steps": [ + "S008", + "S010", + "S124", + "S137" + ], + "fixture_ids": [] + }, + { + "id": "HYF-TEST-012", + "title": "Repo-owned validation", + "status": "approved", + "requirement": "Default pixi test remains familiar; add discovered repo-owned spec/domain/application/provider/journey/soak/live tasks incrementally and forge-agnostically.", + "spec": "specs/PRODUCT_SPEC.md", + "verification_method": "task discovery and command-contract tests", + "implementation_steps": [ + "S010", + "S012", + "S123", + "S134", + "S135" + ], + "fixture_ids": [] + }, + { + "id": "HYF-REL-001", + "title": "Ordered commits", + "status": "approved", + "requirement": "Follow the included sequence one independently tested/reviewed known-good commit at a time; evidence and document any proven necessary deviation.", + "spec": "specs/ARCHITECTURE.md", + "verification_method": "step ledger and per-commit review", + "implementation_steps": [ + "S002", + "S015", + "S137", + "S138" + ], + "fixture_ids": [] + }, + { + "id": "HYF-REL-002", + "title": "Verification honesty", + "status": "approved", + "requirement": "Record real commands/results and blocked/N/A checks; no source/model/production completion claims from package validation alone.", + "spec": "specs/ARCHITECTURE.md", + "verification_method": "verification reports and release checklist", + "implementation_steps": [ + "S001", + "S002", + "S015", + "S120", + "S123", + "S124", + "S130", + "S134", + "S135", + "S137", + "S138" + ], + "fixture_ids": [] + }, + { + "id": "HYF-REL-003", + "title": "Tooling and quality", + "status": "approved", + "requirement": "Preserve pinned tooling, discover actual format/lint/build/security checks and supported target matrices; Cargo applies only to real relevant Rust workspaces.", + "spec": "specs/ARCHITECTURE.md", + "verification_method": "build/quality/target evidence", + "implementation_steps": [ + "S001", + "S012", + "S013", + "S135", + "S136" + ], + "fixture_ids": [] + }, + { + "id": "HYF-REL-004", + "title": "Real authority integration", + "status": "approved", + "requirement": "Simulated handoffs do not establish actual persistence/idempotency/concurrency; test real owning services before production activation.", + "spec": "specs/ARCHITECTURE.md", + "verification_method": "external integration gate", + "implementation_steps": [ + "S109", + "S113", + "S131", + "S132", + "S138" + ], + "fixture_ids": [ + "JR002_buyer_match_revalidate", + "JR003_duplicate_acceptance", + "JR004_stale_acceptance", + "JR005_stock_race" + ] + }, + { + "id": "HYF-REL-005", + "title": "Model and account readiness", + "status": "approved", + "requirement": "Real-model metrics and provider privacy/region/capacity approvals are independent release gates; keep thresholds predeclared.", + "spec": "specs/ARCHITECTURE.md", + "verification_method": "external evaluation/account gate", + "implementation_steps": [ + "S127", + "S128", + "S129", + "S130", + "S138" + ], + "fixture_ids": [] + }, + { + "id": "HYF-REL-006", + "title": "Operational readiness", + "status": "approved", + "requirement": "Exercise safe provider disablement/rollback without deleting accepted business records; supply runbooks, examples and measured resource evidence.", + "spec": "specs/ARCHITECTURE.md", + "verification_method": "runbook drills and release gate", + "implementation_steps": [ + "S054", + "S125", + "S133", + "S138" + ], + "fixture_ids": [] + } + ] +} diff --git a/tests/requirements/hyf_v1_jev.steps.json b/tests/requirements/hyf_v1_jev.steps.json @@ -0,0 +1,5477 @@ +{ + "spec_id": "hyf_v1_jev", + "format_version": 1, + "commit_convention": "<area>: <imperative lowercase description>", + "steps": [ + { + "id": "S001", + "title": "Record baseline and command discovery", + "phase": "A — discovery and durable contract adoption", + "purpose": "Establish facts before modifying a possibly newer checkout.", + "scope": "Inspect current instructions, HEAD, dirty worktree, README, manifests, source modules and last commit subjects; record actual tools/tasks, target matrix and Rust applicability. Reproduce baseline checks without changing runtime behavior.", + "files": [ + "docs/specs/hyf_v1_jev/implementation/BASELINE_RUN.md", + "current AGENTS.md", + "pixi.toml", + "flake.nix" + ], + "tests": "Run documented baseline tests; record missing toolchain or pre-existing failures and verify no unrelated files are modified.", + "requirements": [ + "HYF-CORE-001", + "HYF-CORE-006", + "HYF-REL-002", + "HYF-REL-003" + ], + "introduces_tasks": [], + "commit_message": "spec: record baseline and command discovery", + "expected_result": "Inspect current instructions, HEAD, dirty worktree, README, manifests, source modules and last commit subjects; record actual tools/tasks, target matrix and Rust applicability. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [] + }, + { + "id": "S002", + "title": "Adopt durable approved specifications", + "phase": "A — discovery and durable contract adoption", + "purpose": "Make product intent available inside the actual repository.", + "scope": "Import approved specs, ADRs, plan and source ledger into the current documentation convention; label proposed bindings, open gates and original handoff evidence. Do not copy a source implementation or overwrite user docs.", + "files": [ + "docs/specs/hyf_v1_jev/", + "implementation progress ledger" + ], + "tests": "Check local document paths, requirement IDs, status claims and consistency with applicable repository instructions.", + "requirements": [ + "HYF-CORE-004", + "HYF-REL-001", + "HYF-REL-002" + ], + "introduces_tasks": [], + "commit_message": "spec: adopt durable approved specifications", + "expected_result": "Import approved specs, ADRs, plan and source ledger into the current documentation convention; label proposed bindings, open gates and original handoff evidence. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S001" + ] + }, + { + "id": "S003", + "title": "Bind fixture authority and installation paths", + "phase": "A — discovery and durable contract adoption", + "purpose": "Prevent divergent canonical wire contracts.", + "scope": "Document discovered parent authority and local offline mirror; assign repo-local domain/provider fixture ownership and one adopted active location. Preserve old fixture manifest and avoid a runtime parent-checkout dependency.", + "files": [ + "tests/fixtures/v1/manifest.json", + "tests/fixtures/hyf_v1_jev/manifest.json", + "spec fixture-ownership note" + ], + "tests": "Verify old manifest unchanged unless justified; validate new paths and parent-unavailable standalone behavior by inspection/test setup.", + "requirements": [ + "HYF-CORE-005", + "HYF-TEST-001", + "HYF-TEST-002" + ], + "introduces_tasks": [], + "commit_message": "spec: bind fixture authority and installation paths", + "expected_result": "Document discovered parent authority and local offline mirror; assign repo-local domain/provider fixture ownership and one adopted active location. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S002" + ] + }, + { + "id": "S004", + "title": "Bind additive operation envelopes", + "phase": "A — discovery and durable contract adoption", + "purpose": "Resolve wire details before writing operation code.", + "scope": "Map the three approved operation semantics onto the existing envelope, choose version strategy, known-field rules and correlation behavior; add actual request/response schema definitions and valid/invalid contract examples without advertising operations.", + "files": [ + "schemas/hyf_v1_jev/", + "docs/specs/hyf_v1_jev/specs/API_CONTRACTS.md", + "contract examples" + ], + "tests": "Validate examples and unsupported-version/unknown-field decisions; compare old wire fixtures and ensure no existing envelope is silently redefined.", + "requirements": [ + "HYF-BUY-006", + "HYF-CORE-005", + "HYF-CORE-004" + ], + "introduces_tasks": [], + "commit_message": "spec: bind additive operation envelopes", + "expected_result": "Map the three approved operation semantics onto the existing envelope, choose version strategy, known-field rules and correlation behavior; add actual request/response schema definitions and valid/invalid contract examples without advertising operations. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S003" + ] + }, + { + "id": "S005", + "title": "Bind quantity and money representations", + "phase": "A — discovery and durable contract adoption", + "purpose": "Make arithmetic behavior explicit before implementation.", + "scope": "Choose supported exact representation, unit dimensions, precision/overflow/rounding rules and price basis fields consistent with the repo; document unknown and approximation alternatives. Keep unapproved production conversion catalogues unresolved.", + "files": [ + "schemas/hyf_v1_jev/quantity", + "schemas/hyf_v1_jev/money", + "domain contract note" + ], + "tests": "Add schema examples for exact, approximate, unknown, invalid and boundary amounts; have expected arithmetic independently reviewed.", + "requirements": [ + "HYF-DATA-003", + "HYF-DATA-004", + "HYF-DATA-005", + "HYF-DATA-006" + ], + "introduces_tasks": [], + "commit_message": "spec: bind quantity and money representations", + "expected_result": "Choose supported exact representation, unit dimensions, precision/overflow/rounding rules and price basis fields consistent with the repo; document unknown and approximation alternatives. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S004" + ] + }, + { + "id": "S006", + "title": "Bind temporal and evidence semantics", + "phase": "A — discovery and durable contract adoption", + "purpose": "Remove ambiguous time/span assumptions.", + "scope": "Choose source/evaluation/ingestion time distinctions, date-only/window boundaries, absent-zone behavior, exact span offset convention and correction references; do not assume byte offsets already exist in the wire API.", + "files": [ + "schemas/hyf_v1_jev/source", + "temporal/evidence contract note" + ], + "tests": "Add Unicode/span and relative-time contract examples plus ambiguous local-time and final-window-boundary cases.", + "requirements": [ + "HYF-DATA-001", + "HYF-DATA-002", + "HYF-DATA-007", + "HYF-DATA-008", + "HYF-DATA-010" + ], + "introduces_tasks": [], + "commit_message": "spec: bind temporal and evidence semantics", + "expected_result": "Choose source/evaluation/ingestion time distinctions, date-only/window boundaries, absent-zone behavior, exact span offset convention and correction references; do not assume byte offsets already exist in the wire API. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S005" + ] + }, + { + "id": "S007", + "title": "Bind typed outcome and reason taxonomy", + "phase": "A — discovery and durable contract adoption", + "purpose": "Prevent contradictory result/error states.", + "scope": "Define known/unresolved field alternatives, review state, business eligibility, execution degradation and stable reason-code mapping to existing error conventions; separate no-match from provider failure.", + "files": [ + "schemas/hyf_v1_jev/outcomes", + "src/hyf_core/errors.mojo design notes" + ], + "tests": "Validate success-with-uncertainty and failed-operation examples; reject contradictory status combinations at schema boundaries.", + "requirements": [ + "HYF-CORE-003", + "HYF-BUY-003", + "HYF-MATCH-001", + "HYF-JEV-008" + ], + "introduces_tasks": [], + "commit_message": "spec: bind typed outcome and reason taxonomy", + "expected_result": "Define known/unresolved field alternatives, review state, business eligibility, execution degradation and stable reason-code mapping to existing error conventions; separate no-match from provider failure. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S006" + ] + }, + { + "id": "S008", + "title": "Register the acceptance corpus as planned", + "phase": "A — discovery and durable contract adoption", + "purpose": "Bring canonical cases into the repo without pretending behavior exists.", + "scope": "Install synthetic scenarios and raw payloads with requirement/provenance/activation metadata; map handoff projections to chosen types/contracts and record one source of truth. Mark future behavior planned, not passed.", + "files": [ + "tests/fixtures/hyf_v1_jev/", + "schemas/hyf_v1_jev/fixture", + "requirement registry" + ], + "tests": "Validate fixture syntax and nonempty expectations; prove planned cases are not counted in behavioral pass totals.", + "requirements": [ + "HYF-TEST-001", + "HYF-TEST-010", + "HYF-TEST-011" + ], + "introduces_tasks": [], + "commit_message": "spec: register the acceptance corpus as planned", + "expected_result": "Install synthetic scenarios and raw payloads with requirement/provenance/activation metadata; map handoff projections to chosen types/contracts and record one source of truth. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S007" + ] + }, + { + "id": "S009", + "title": "Implement fixture structural validation", + "phase": "A — discovery and durable contract adoption", + "purpose": "Make malformed fixtures fail loudly.", + "scope": "Add repo-owned validation for duplicate IDs, dangling paths/requirements, unknown assertion operators, empty expectations, provenance and raw-payload declarations; keep intentional invalid wire bytes outside ordinary JSON parsing.", + "files": [ + "tests/fixture_loader.mojo", + "new fixture validator support", + "schemas/hyf_v1_jev/" + ], + "tests": "Negative tests corrupt each validator rule and must fail; valid corpus passes without provider or network.", + "requirements": [ + "HYF-TEST-003", + "HYF-TEST-001" + ], + "introduces_tasks": [], + "commit_message": "spec: implement fixture structural validation", + "expected_result": "Add repo-owned validation for duplicate IDs, dangling paths/requirements, unknown assertion operators, empty expectations, provenance and raw-payload declarations; keep intentional invalid wire bytes outside ordinary JSON parsing. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S008" + ] + }, + { + "id": "S010", + "title": "Add requirement traceability validation", + "phase": "A — discovery and durable contract adoption", + "purpose": "Make acceptance coverage machine-checkable.", + "scope": "Link every approved requirement to verification methods, planned tests or named external gates and step IDs; fail dangling/uncovered mappings without requiring future behavior to pass before activation.", + "files": [ + "requirement registry", + "test traceability support", + "pixi.toml" + ], + "tests": "Test missing requirement, unknown fixture/step, duplicate references and valid external-gate mappings. Introduce test-spec task using available repo-approved tooling.", + "requirements": [ + "HYF-CORE-004", + "HYF-TEST-003", + "HYF-TEST-011", + "HYF-TEST-012" + ], + "introduces_tasks": [ + "test-spec" + ], + "commit_message": "spec: add requirement traceability validation", + "expected_result": "Link every approved requirement to verification methods, planned tests or named external gates and step IDs; fail dangling/uncovered mappings without requiring future behavior to pass before activation. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S009" + ] + }, + { + "id": "S011", + "title": "Test assertion projection semantics", + "phase": "A — discovery and durable contract adoption", + "purpose": "Avoid permissive or self-fulfilling golden comparisons.", + "scope": "Implement typed projection assertions for exact business values, forbidden extras, presence/absence and explicit tolerances; reject unknown operators. Do not reuse production matching logic as an oracle.", + "files": [ + "tests/fixture_assertions.mojo", + "new projection/assertion tests" + ], + "tests": "Prove incorrect extra claims, wrong ordering, missing revision, wrong numeric types and out-of-tolerance diagnostics fail.", + "requirements": [ + "HYF-TEST-008", + "HYF-TEST-010", + "HYF-DATA-009" + ], + "introduces_tasks": [], + "commit_message": "spec: test assertion projection semantics", + "expected_result": "Implement typed projection assertions for exact business values, forbidden extras, presence/absence and explicit tolerances; reject unknown operators. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S010" + ] + }, + { + "id": "S012", + "title": "Add a bounded repo-owned build check", + "phase": "A — discovery and durable contract adoption", + "purpose": "Compile the real entry point using the current toolchain.", + "scope": "Discover supported Mojo compile/check syntax and introduce a repository-owned build check for hyfd if absent; ensure it terminates without waiting indefinitely on stdin. Do not add Cargo or upgrade dependencies incidentally.", + "files": [ + "pixi.toml", + "build-check wrapper if needed", + "src/main.mojo" + ], + "tests": "Execute the build/check task on the declared local target; verify failures return nonzero and unsupported targets are reported truthfully.", + "requirements": [ + "HYF-CORE-001", + "HYF-REL-003", + "HYF-TEST-012" + ], + "introduces_tasks": [ + "check-build" + ], + "commit_message": "spec: add a bounded repo-owned build check", + "expected_result": "Discover supported Mojo compile/check syntax and introduce a repository-owned build check for hyfd if absent; ensure it terminates without waiting indefinitely on stdin. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run check-build" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S011" + ] + }, + { + "id": "S013", + "title": "Add format and static-check discovery", + "phase": "A — discovery and durable contract adoption", + "purpose": "Make code-health checks reproducible rather than assumed.", + "scope": "Bind available current formatting/static tools to check-only repo tasks; document unsupported categories explicitly and preserve existing conventions. Do not claim a lint exists when the toolchain lacks it.", + "files": [ + "pixi.toml", + "repository tooling docs", + "optional check wrapper" + ], + "tests": "Check a deliberate formatting violation in a temporary fixture where tool support exists; document applicable command outputs and no-source-change check behavior.", + "requirements": [ + "HYF-REL-003", + "HYF-CORE-006" + ], + "introduces_tasks": [], + "commit_message": "spec: add format and static-check discovery", + "expected_result": "Bind available current formatting/static tools to check-only repo tasks; document unsupported categories explicitly and preserve existing conventions. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run check-build" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S012" + ] + }, + { + "id": "S014", + "title": "Enforce architectural import boundaries", + "phase": "A — discovery and durable contract adoption", + "purpose": "Stop authority/provider concerns leaking into pure domain code.", + "scope": "Add a lightweight repo-owned boundary check for domain I/O/provider/credential imports and prohibited local workflow paths; encode allowed runtime/application dependency direction without a general architecture framework.", + "files": [ + "tools or tests architecture checker", + "pixi.toml", + "module boundary config" + ], + "tests": "Negative small source fixtures violate each rule and fail; current intended module graph passes or deviations are narrowly documented.", + "requirements": [ + "HYF-CORE-002", + "HYF-CORE-003", + "HYF-CORE-006" + ], + "introduces_tasks": [ + "test-architecture" + ], + "commit_message": "spec: enforce architectural import boundaries", + "expected_result": "Add a lightweight repo-owned boundary check for domain I/O/provider/credential imports and prohibited local workflow paths; encode allowed runtime/application dependency direction without a general architecture framework. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S013" + ] + }, + { + "id": "S015", + "title": "Establish per-step evidence reporting", + "phase": "A — discovery and durable contract adoption", + "purpose": "Make progress resumable and reviewable.", + "scope": "Add the adopted step ledger/report template and a check for valid step/result states; preserve original package evidence as historical. Merge AGENTS guidance narrowly and prohibit silent skip/reorder/broadening.", + "files": [ + "AGENTS.md", + "implementation/STATUS.md", + "implementation/DEVIATIONS.md", + "step ledger" + ], + "tests": "Validate report state transitions and links; review that no unrun source/model check is labeled passed.", + "requirements": [ + "HYF-REL-001", + "HYF-REL-002", + "HYF-CORE-004" + ], + "introduces_tasks": [], + "commit_message": "spec: establish per-step evidence reporting", + "expected_result": "Add the adopted step ledger/report template and a check for valid step/result states; preserve original package evidence as historical. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S014" + ] + }, + { + "id": "S016", + "title": "Add source identity and revision types", + "phase": "B — pure domain primitives", + "purpose": "Keep trust-bearing values distinct from model text.", + "scope": "Implement typed source/actor/farm/need/lot references and revision wrappers within existing Mojo idioms; require explicit construction and bounded validated external values.", + "files": [ + "src/hyf_core/domain/source.mojo (proposed)", + "domain test entry", + "pixi.toml" + ], + "tests": "Unit tests for valid/invalid/empty identities and revision preservation; introduce test-domain and wire it into default test.", + "requirements": [ + "HYF-DATA-001", + "HYF-DATA-009", + "HYF-CORE-003" + ], + "introduces_tasks": [ + "test-domain" + ], + "commit_message": "core: add source identity and revision types", + "expected_result": "Implement typed source/actor/farm/need/lot references and revision wrappers within existing Mojo idioms; require explicit construction and bounded validated external values. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S015" + ] + }, + { + "id": "S017", + "title": "Add evidence reference types", + "phase": "B — pure domain primitives", + "purpose": "Anchor interpretations to exact supplied evidence.", + "scope": "Implement span and record-field references using the chosen contract, with source revision linkage and no arbitrary external dereference.", + "files": [ + "src/hyf_core/domain/evidence.mojo", + "domain evidence tests" + ], + "tests": "Validate Unicode boundaries, out-of-range/reversed spans, repeated text locations and mismatched revision rejection.", + "requirements": [ + "HYF-DATA-002", + "HYF-DATA-001" + ], + "introduces_tasks": [], + "commit_message": "core: add evidence reference types", + "expected_result": "Implement span and record-field references using the chosen contract, with source revision linkage and no arbitrary external dereference. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S016" + ] + }, + { + "id": "S018", + "title": "Add known and unresolved field alternatives", + "phase": "B — pure domain primitives", + "purpose": "Preserve ambiguity without sentinel values.", + "scope": "Implement explicit typed value/unresolved alternatives plus extraction method and review metadata; reject contradictory construction rather than scattered boolean checks.", + "files": [ + "src/hyf_core/domain/field.mojo", + "field tests" + ], + "tests": "Test known zero versus unknown, absent versus false, approximation metadata and invalid known-plus-unresolved state.", + "requirements": [ + "HYF-CORE-003", + "HYF-BUY-003", + "HYF-DATA-003" + ], + "introduces_tasks": [], + "commit_message": "core: add known and unresolved field alternatives", + "expected_result": "Implement explicit typed value/unresolved alternatives plus extraction method and review metadata; reject contradictory construction rather than scattered boolean checks. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S017" + ] + }, + { + "id": "S019", + "title": "Add bounded exact quantity arithmetic", + "phase": "B — pure domain primitives", + "purpose": "Make threshold decisions independent of binary float noise.", + "scope": "Implement the approved numeric representation and checked add/subtract/compare with explicit overflow and rounding behavior; do not broaden supported precision.", + "files": [ + "src/hyf_core/domain/quantity.mojo", + "quantity tests" + ], + "tests": "Independent boundary examples cover exact equality, overflow, invalid negatives and permitted explicit adjustment representation.", + "requirements": [ + "HYF-DATA-003", + "HYF-TEST-008" + ], + "introduces_tasks": [], + "commit_message": "core: add bounded exact quantity arithmetic", + "expected_result": "Implement the approved numeric representation and checked add/subtract/compare with explicit overflow and rounding behavior; do not broaden supported precision. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S018" + ] + }, + { + "id": "S020", + "title": "Add unit dimensions and conversion rules", + "phase": "B — pure domain primitives", + "purpose": "Allow only justified comparable quantities.", + "scope": "Implement known unit dimensions and exact supported conversions using versioned supplied rules; reject dimension mismatch and unknown unit identifiers.", + "files": [ + "src/hyf_core/domain/units.mojo", + "unit conversion tests" + ], + "tests": "Mass equivalence and threshold tests; incompatible mass/count/volume conversion remains unresolved or invalid under contract.", + "requirements": [ + "HYF-DATA-004", + "HYF-DATA-003" + ], + "introduces_tasks": [], + "commit_message": "core: add unit dimensions and conversion rules", + "expected_result": "Implement known unit dimensions and exact supported conversions using versioned supplied rules; reject dimension mismatch and unknown unit identifiers. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S019" + ] + }, + { + "id": "S021", + "title": "Add trusted pack conversion support", + "phase": "B — pure domain primitives", + "purpose": "Avoid fabricating box and bunch weights.", + "scope": "Apply explicitly supplied versioned product-pack conversions only to matching products/packs; preserve unknown conversions and provenance.", + "files": [ + "src/hyf_core/domain/pack.mojo", + "pack tests" + ], + "tests": "Known pack conversion passes; absent, wrong-product, conflicting and stale conversion references do not produce invented mass.", + "requirements": [ + "HYF-DATA-004", + "HYF-DATA-009" + ], + "introduces_tasks": [], + "commit_message": "core: add trusted pack conversion support", + "expected_result": "Apply explicitly supplied versioned product-pack conversions only to matching products/packs; preserve unknown conversions and provenance. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S020" + ] + }, + { + "id": "S022", + "title": "Preserve approximation through normalization", + "phase": "B — pure domain primitives", + "purpose": "Do not create precision that the source never provided.", + "scope": "Carry approximation qualifier and original expression through exact unit conversion; prohibit synthesized uncertainty intervals.", + "files": [ + "src/hyf_core/domain/quantity.mojo", + "normalization tests" + ], + "tests": "About-80-lb stays approximate after conversion; no lower/upper bounds appear unless supplied by source; exact value remains exact.", + "requirements": [ + "HYF-DATA-005", + "HYF-FARM-004" + ], + "introduces_tasks": [], + "commit_message": "core: preserve approximation through normalization", + "expected_result": "Carry approximation qualifier and original expression through exact unit conversion; prohibit synthesized uncertainty intervals. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S021" + ] + }, + { + "id": "S023", + "title": "Add price and currency types", + "phase": "B — pure domain primitives", + "purpose": "Keep financial conditions semantically separate.", + "scope": "Implement exact price amount, currency, unit/pack basis and declared fee/minimum-order context; represent not-stated independently. No FX service is introduced.", + "files": [ + "src/hyf_core/domain/price.mojo", + "price tests" + ], + "tests": "Unknown price differs from zero, currencies/bases cannot be silently mixed and unsupported conversions remain unresolved.", + "requirements": [ + "HYF-DATA-006", + "HYF-DATA-003" + ], + "introduces_tasks": [], + "commit_message": "core: add price and currency types", + "expected_result": "Implement exact price amount, currency, unit/pack basis and declared fee/minimum-order context; represent not-stated independently. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S022" + ] + }, + { + "id": "S024", + "title": "Add source and evaluation time types", + "phase": "B — pure domain primitives", + "purpose": "Separate business time from execution timing.", + "scope": "Implement typed source/ingestion/evaluation timestamps, date-only values and known/unknown timezone context per the bound contract.", + "files": [ + "src/hyf_core/domain/time.mojo", + "time tests" + ], + "tests": "Test explicit zone, absent zone, date-only roundtrip, invalid timestamps and separate evaluation time on replay.", + "requirements": [ + "HYF-DATA-007", + "HYF-DATA-008" + ], + "introduces_tasks": [], + "commit_message": "core: add source and evaluation time types", + "expected_result": "Implement typed source/ingestion/evaluation timestamps, date-only values and known/unknown timezone context per the bound contract. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S023" + ] + }, + { + "id": "S025", + "title": "Implement source-anchored date resolution", + "phase": "B — pure domain primitives", + "purpose": "Make relative dates stable on replay.", + "scope": "Resolve supported relative expressions using source time/zone and versioned locale rules; return unresolved for unsupported/ambiguous input rather than guessing.", + "files": [ + "src/hyf_core/normalization/dates.mojo", + "relative-date tests" + ], + "tests": "Replay the same source at later evaluation time; intended supported Friday resolution stays fixed; missing context remains unresolved.", + "requirements": [ + "HYF-DATA-007", + "HYF-TEST-007" + ], + "introduces_tasks": [], + "commit_message": "core: implement source-anchored date resolution", + "expected_result": "Resolve supported relative expressions using source time/zone and versioned locale rules; return unresolved for unsupported/ambiguous input rather than guessing. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S024" + ] + }, + { + "id": "S026", + "title": "Handle local-time ambiguity and window boundaries", + "phase": "B — pure domain primitives", + "purpose": "Avoid daylight-saving and date-boundary errors.", + "scope": "Implement selected ambiguous/nonexistent local-time policy and interval/date-only comparisons without model arithmetic; preserve unresolved cases.", + "files": [ + "src/hyf_core/normalization/dates.mojo", + "temporal boundary tests" + ], + "tests": "Test daylight-saving repeated/missing times, inclusive/exclusive window edges and timezone-rule version effects.", + "requirements": [ + "HYF-DATA-007", + "HYF-DATA-009" + ], + "introduces_tasks": [], + "commit_message": "core: handle local-time ambiguity and window boundaries", + "expected_result": "Implement selected ambiguous/nonexistent local-time policy and interval/date-only comparisons without model arithmetic; preserve unresolved cases. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S025" + ] + }, + { + "id": "S027", + "title": "Separate harvest age from record recency", + "phase": "B — pure domain primitives", + "purpose": "Prevent a recently edited listing from appearing freshly harvested.", + "scope": "Represent harvest, verification and record-update times separately and expose only justified freshness attributes.", + "files": [ + "src/hyf_core/domain/supply.mojo (proposed)", + "freshness tests" + ], + "tests": "Recent record with old/unknown harvest does not inherit fresh-harvest status; stale verification remains visible.", + "requirements": [ + "HYF-DATA-008", + "HYF-MATCH-003" + ], + "introduces_tasks": [], + "commit_message": "core: separate harvest age from record recency", + "expected_result": "Represent harvest, verification and record-update times separately and expose only justified freshness attributes. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S026" + ] + }, + { + "id": "S028", + "title": "Add product references and taxonomy views", + "phase": "B — pure domain primitives", + "purpose": "Bind terms to authorized catalogue evidence.", + "scope": "Implement resolved/unresolved product references and immutable bounded taxonomy view input; no marketplace search or hidden catalogue database.", + "files": [ + "src/hyf_core/domain/product.mojo", + "product tests" + ], + "tests": "Unknown aliases remain unresolved; exact catalogue ID/version preserved; cross-product pack rules do not apply.", + "requirements": [ + "HYF-FARM-008", + "HYF-DATA-009" + ], + "introduces_tasks": [], + "commit_message": "core: add product references and taxonomy views", + "expected_result": "Implement resolved/unresolved product references and immutable bounded taxonomy view input; no marketplace search or hidden catalogue database. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S027" + ] + }, + { + "id": "S029", + "title": "Add supply claim types", + "phase": "B — pure domain primitives", + "purpose": "Represent per-product statements without mutating inventory.", + "scope": "Implement status, reported attributes, evidence and unresolved fields for offers/forecasts/unavailability/corrections; avoid authoritative-stock constructors from raw claims.", + "files": [ + "src/hyf_core/domain/claims.mojo", + "claim tests" + ], + "tests": "Multi-product claim sets and forecast/offer distinction; attempts to treat claim quantity as confirmed available stock fail type/policy checks.", + "requirements": [ + "HYF-FARM-001", + "HYF-FARM-002", + "HYF-FARM-004" + ], + "introduces_tasks": [], + "commit_message": "core: add supply claim types", + "expected_result": "Implement status, reported attributes, evidence and unresolved fields for offers/forecasts/unavailability/corrections; avoid authoritative-stock constructors from raw claims. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S028" + ] + }, + { + "id": "S030", + "title": "Add proposed supply change types", + "phase": "B — pure domain primitives", + "purpose": "Distinguish update operations and target scope.", + "scope": "Represent addition, remaining balance, replacement, withdrawal, correction and unresolved operation with source and expected target revision where available.", + "files": [ + "src/hyf_core/domain/changes.mojo", + "change tests" + ], + "tests": "Three twenty-box operations differ; ambiguous target has no applicable mutation; correction references are required by contract.", + "requirements": [ + "HYF-FARM-003", + "HYF-FARM-007", + "HYF-DATA-010" + ], + "introduces_tasks": [], + "commit_message": "core: add proposed supply change types", + "expected_result": "Represent addition, remaining balance, replacement, withdrawal, correction and unresolved operation with source and expected target revision where available. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S029" + ] + }, + { + "id": "S031", + "title": "Add clarification and review models", + "phase": "B — pure domain primitives", + "purpose": "Make follow-up questions explicit and actionable.", + "scope": "Implement material blocker/clarification target and review state tied to source field/proposed change; leave persistence and UI layout outside core.", + "files": [ + "src/hyf_core/domain/review.mojo", + "review tests" + ], + "tests": "Optional missing price is nonblocking for a draft; ambiguous withdrawal is blocking for application; unrelated clarification is rejected.", + "requirements": [ + "HYF-FARM-005", + "HYF-BUY-005" + ], + "introduces_tasks": [], + "commit_message": "core: add clarification and review models", + "expected_result": "Implement material blocker/clarification target and review state tied to source field/proposed change; leave persistence and UI layout outside core. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S030" + ] + }, + { + "id": "S032", + "title": "Add revisioned clarification merge rules", + "phase": "B — pure domain primitives", + "purpose": "Preserve source history and conflict visibility.", + "scope": "Combine supplied clarification evidence into a new interpretation view without modifying original source; detect stale/conflicting links deterministically.", + "files": [ + "src/hyf_core/domain/review.mojo", + "clarification merge tests" + ], + "tests": "Original text unchanged; valid linked answer resolves its field only; conflicting/stale answers return review state.", + "requirements": [ + "HYF-FARM-006", + "HYF-DATA-010" + ], + "introduces_tasks": [], + "commit_message": "core: add revisioned clarification merge rules", + "expected_result": "Combine supplied clarification evidence into a new interpretation view without modifying original source; detect stale/conflicting links deterministically. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S031" + ] + }, + { + "id": "S033", + "title": "Add demand line and constraint types", + "phase": "B — pure domain primitives", + "purpose": "Represent buyer intent without losing strength or exclusions.", + "scope": "Implement typed need/line references, quantities, required/preferred/excluded/permitted conditions and source applicability; no generated order type.", + "files": [ + "src/hyf_core/domain/demand.mojo", + "demand model tests" + ], + "tests": "Multiple lines retain independent quantities; optional preferences are not mandatory; contradictory condition sets are representable as unresolved.", + "requirements": [ + "HYF-BUY-001", + "HYF-BUY-002", + "HYF-BUY-003" + ], + "introduces_tasks": [], + "commit_message": "core: add demand line and constraint types", + "expected_result": "Implement typed need/line references, quantities, required/preferred/excluded/permitted conditions and source applicability; no generated order type. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S032" + ] + }, + { + "id": "S034", + "title": "Add authoritative supply snapshot views", + "phase": "B — pure domain primitives", + "purpose": "Provide enough immutable context for feasibility.", + "scope": "Implement supplier/lot/product/revision, known unreserved quantity, fulfillment, times, price and verification attributes as authority-supplied read models.", + "files": [ + "src/hyf_core/domain/supply.mojo", + "supply snapshot tests" + ], + "tests": "Missing quantity stays unknown; duplicate identity/conflicting revision detected; source claims cannot silently construct verified snapshots.", + "requirements": [ + "HYF-MATCH-003", + "HYF-DATA-009", + "HYF-DATA-010" + ], + "introduces_tasks": [], + "commit_message": "core: add authoritative supply snapshot views", + "expected_result": "Implement supplier/lot/product/revision, known unreserved quantity, fulfillment, times, price and verification attributes as authority-supplied read models. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S033" + ] + }, + { + "id": "S035", + "title": "Add eligibility outcome types", + "phase": "B — pure domain primitives", + "purpose": "Encode mandatory precedence in a small pure constructor.", + "scope": "Implement pass/fail/unknown checks and eligible/conditional/ineligible result composition over applicable mandatory conditions.", + "files": [ + "src/hyf_core/matching/eligibility.mojo", + "eligibility tests" + ], + "tests": "Truth-table tests: fail dominates unknown; unknown dominates all-pass; optional omissions do not block; contradictory states rejected.", + "requirements": [ + "HYF-MATCH-001", + "HYF-MATCH-002" + ], + "introduces_tasks": [], + "commit_message": "core: add eligibility outcome types", + "expected_result": "Implement pass/fail/unknown checks and eligible/conditional/ineligible result composition over applicable mandatory conditions. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S034" + ] + }, + { + "id": "S036", + "title": "Add allocation and plan types", + "phase": "B — pure domain primitives", + "purpose": "Represent fulfillment explicitly instead of ranked IDs.", + "scope": "Implement demand-line allocations, underlying lot identity/revision, single-supplier plan, coverage and alternative-plan semantics without selecting plans yet.", + "files": [ + "src/hyf_core/matching/plan.mojo", + "plan type tests" + ], + "tests": "Invalid quantities/references fail; alternative plans do not imply aggregate simultaneous reservation; unsupported mode represented.", + "requirements": [ + "HYF-MATCH-004", + "HYF-MATCH-005", + "HYF-MATCH-007" + ], + "introduces_tasks": [], + "commit_message": "core: add allocation and plan types", + "expected_result": "Implement demand-line allocations, underlying lot identity/revision, single-supplier plan, coverage and alternative-plan semantics without selecting plans yet. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S035" + ] + }, + { + "id": "S037", + "title": "Add coverage and limitation types", + "phase": "B — pure domain primitives", + "purpose": "Avoid claims about records never examined.", + "scope": "Represent authorized input scope, truncation, evaluated counts and planner-mode limitations independently of no-match status.", + "files": [ + "src/hyf_core/matching/coverage.mojo", + "coverage tests" + ], + "tests": "Empty input, truncated input and unsupported planner mode yield distinguishable limitations without global-unavailability claims.", + "requirements": [ + "HYF-MATCH-010", + "HYF-MATCH-003" + ], + "introduces_tasks": [], + "commit_message": "core: add coverage and limitation types", + "expected_result": "Represent authorized input scope, truncation, evaluated counts and planner-mode limitations independently of no-match status. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S036" + ] + }, + { + "id": "S038", + "title": "Add execution and provenance types", + "phase": "B — pure domain primitives", + "purpose": "Keep operational success separate from business conclusions.", + "scope": "Implement actual semantic version references, execution outcome/degradation and safe diagnostics; preserve existing envelope metadata compatibility.", + "files": [ + "src/hyf_core/metadata.mojo", + "src/hyf_core/provenance.mojo", + "execution metadata tests" + ], + "tests": "No-match can be completed; timeout cannot be reported as business unavailability; requested versus actual model/version distinguished.", + "requirements": [ + "HYF-DATA-009", + "HYF-JEV-008", + "HYF-RUN-008" + ], + "introduces_tasks": [], + "commit_message": "core: add execution and provenance types", + "expected_result": "Implement actual semantic version references, execution outcome/degradation and safe diagnostics; preserve existing envelope metadata compatibility. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S037" + ] + }, + { + "id": "S039", + "title": "Define the narrow semantic evaluator boundary", + "phase": "C — evaluator contracts and pure provider handling", + "purpose": "Allow provider replacement without changing domain APIs.", + "scope": "Add typed internal question/answer requests for bounded semantic tasks and a result/error boundary; avoid public Jev types and a generic plugin framework.", + "files": [ + "src/hyf_application/ports.mojo (proposed)", + "src/hyf_assist/contract.mojo", + "port tests" + ], + "tests": "Compile-time/contract tests prohibit inventory authority in evaluator; unsupported task returns typed failure.", + "requirements": [ + "HYF-CORE-003", + "HYF-JEV-001", + "HYF-JEV-002" + ], + "introduces_tasks": [], + "commit_message": "provider: define the narrow semantic evaluator boundary", + "expected_result": "Add typed internal question/answer requests for bounded semantic tasks and a result/error boundary; avoid public Jev types and a generic plugin framework. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S038" + ] + }, + { + "id": "S040", + "title": "Add deterministic wall and monotonic clock ports", + "phase": "C — evaluator contracts and pure provider handling", + "purpose": "Control temporal behavior without global mocking.", + "scope": "Expose minimal clock interfaces at the runtime/application boundary with production and test implementations; core still receives explicit time values.", + "files": [ + "src/hyf_application/clock.mojo", + "tests/support/clock.mojo" + ], + "tests": "Virtual wall changes do not alter monotonic budgets; source-time interpretation stays independent of current clock.", + "requirements": [ + "HYF-RUN-004", + "HYF-TEST-007" + ], + "introduces_tasks": [], + "commit_message": "provider: add deterministic wall and monotonic clock ports", + "expected_result": "Expose minimal clock interfaces at the runtime/application boundary with production and test implementations; core still receives explicit time values. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S039" + ] + }, + { + "id": "S041", + "title": "Implement strict scripted evaluator", + "phase": "C — evaluator contracts and pure provider handling", + "purpose": "Test real orchestration with controlled semantic answers.", + "scope": "Add test-only scripted evaluator keyed by expected typed input, explicit answer/failure and call count; unmatched/unconsumed calls fail with bounded diagnostics.", + "files": [ + "tests/support/scripted_evaluator.mojo", + "evaluator harness tests" + ], + "tests": "Wrong request, extra call and missing call fail; no path to a live provider exists; seeded responses are reproducible.", + "requirements": [ + "HYF-TEST-006", + "HYF-TEST-005" + ], + "introduces_tasks": [], + "commit_message": "provider: implement strict scripted evaluator", + "expected_result": "Add test-only scripted evaluator keyed by expected typed input, explicit answer/failure and call count; unmatched/unconsumed calls fail with bounded diagnostics. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S040" + ] + }, + { + "id": "S042", + "title": "Add source-span candidate discovery", + "phase": "C — evaluator contracts and pure provider handling", + "purpose": "Make extraction candidates an explicit tested stage.", + "scope": "Discover supported product/quantity/date spans with bounded context and stable source associations; use supplied taxonomy; preserve unresolved terms and truncation.", + "files": [ + "src/hyf_core/interpretation/candidates.mojo", + "candidate tests" + ], + "tests": "Repeated numbers, multi-crop text, negation context, unknown words and maximum spans are covered; source offsets remain correct.", + "requirements": [ + "HYF-FARM-008", + "HYF-JEV-002", + "HYF-DATA-002" + ], + "introduces_tasks": [], + "commit_message": "provider: add source-span candidate discovery", + "expected_result": "Discover supported product/quantity/date spans with bounded context and stable source associations; use supplied taxonomy; preserve unresolved terms and truncation. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S041" + ] + }, + { + "id": "S043", + "title": "Add versioned semantic question bundles", + "phase": "C — evaluator contracts and pure provider handling", + "purpose": "Control model instructions as reviewed configuration.", + "scope": "Define bounded status, update-role, constraint-strength and evidence-sufficiency question templates with explicit scope and unknown options; no production thresholds invented.", + "files": [ + "src/hyf_application/questions/", + "bundle tests and manifest" + ], + "tests": "Golden request semantics retain explicit product/field references; question IDs alone never carry meaning; bundle version changes are detected.", + "requirements": [ + "HYF-JEV-002", + "HYF-JEV-006", + "HYF-BUY-002" + ], + "introduces_tasks": [], + "commit_message": "provider: add versioned semantic question bundles", + "expected_result": "Define bounded status, update-role, constraint-strength and evidence-sufficiency question templates with explicit scope and unknown options; no production thresholds invented. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S042" + ] + }, + { + "id": "S044", + "title": "Implement Jev request serialization", + "phase": "C — evaluator contracts and pure provider handling", + "purpose": "Build the real evaluation protocol independently of chat completions.", + "scope": "Serialize model/state/questions using tested JSON facilities; enforce supported types/criteria shapes and configured bounds before I/O.", + "files": [ + "src/hyf_provider/jev/request.mojo (proposed)", + "provider request fixtures", + "pixi.toml" + ], + "tests": "Structural equality against synthetic expected requests; invalid question shapes/options/empty criteria rejected; introduce test-jev-contract.", + "requirements": [ + "HYF-JEV-001", + "HYF-JEV-002", + "HYF-JEV-009" + ], + "introduces_tasks": [ + "test-jev-contract" + ], + "commit_message": "provider: implement Jev request serialization", + "expected_result": "Serialize model/state/questions using tested JSON facilities; enforce supported types/criteria shapes and configured bounds before I/O. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-jev-contract" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S043" + ] + }, + { + "id": "S045", + "title": "Parse typed Choice and Noul answers", + "phase": "C — evaluator contracts and pure provider handling", + "purpose": "Respect different provider answer shapes.", + "scope": "Decode required top-level/model/usage fields and Choice/Noul answer fields with explicit type validation; no source identity copying from responses.", + "files": [ + "src/hyf_provider/jev/response.mojo", + "Choice/Noul fixtures" + ], + "tests": "Correct Noul works without confidence; wrong type, unknown choice and missing required fields fail.", + "requirements": [ + "HYF-JEV-004", + "HYF-JEV-005", + "HYF-DATA-001" + ], + "introduces_tasks": [], + "commit_message": "provider: parse typed Choice and Noul answers", + "expected_result": "Decode required top-level/model/usage fields and Choice/Noul answer fields with explicit type validation; no source identity copying from responses. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-jev-contract" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S044" + ] + }, + { + "id": "S046", + "title": "Parse ordered Score answers", + "phase": "C — evaluator contracts and pure provider handling", + "purpose": "Preserve rubric semantics rather than assume normalized values.", + "scope": "Decode score, legend, probabilities and confidence; bind expected rubric levels and normalize only through explicit later composition.", + "files": [ + "src/hyf_provider/jev/response.mojo", + "Score fixtures" + ], + "tests": "Two/three/multiple-level rubrics, string level keys, invalid legends and out-of-range raw values are tested.", + "requirements": [ + "HYF-JEV-004", + "HYF-JEV-005" + ], + "introduces_tasks": [], + "commit_message": "provider: parse ordered Score answers", + "expected_result": "Decode score, legend, probabilities and confidence; bind expected rubric levels and normalize only through explicit later composition. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-jev-contract" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S045" + ] + }, + { + "id": "S047", + "title": "Validate answer sets and numerical consistency", + "phase": "C — evaluator contracts and pure provider handling", + "purpose": "Reject structurally plausible but semantically malformed provider output.", + "scope": "Require exact expected answer ID/type sets, finite bounded diagnostics, correct probability sets/sums and declared consistency tolerances; reject unapproved model drift.", + "files": [ + "src/hyf_provider/jev/validation.mojo", + "malformed response corpus" + ], + "tests": "Missing/extra IDs, NaN/raw invalid JSON, infinity overflow, distribution mismatch, score mismatch and model mismatch fail safely.", + "requirements": [ + "HYF-JEV-004", + "HYF-JEV-006" + ], + "introduces_tasks": [], + "commit_message": "provider: validate answer sets and numerical consistency", + "expected_result": "Require exact expected answer ID/type sets, finite bounded diagnostics, correct probability sets/sums and declared consistency tolerances; reject unapproved model drift. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-jev-contract" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S046" + ] + }, + { + "id": "S048", + "title": "Map Jev failures into stable internal outcomes", + "phase": "C — evaluator contracts and pure provider handling", + "purpose": "Avoid string-matched transport errors and public leakage.", + "scope": "Define auth, request validation, capacity, transport, deadline and answer-contract error mapping with safe bounded diagnostics; distinguish business result types.", + "files": [ + "src/hyf_provider/jev/errors.mojo", + "src/hyf_core/errors.mojo", + "error mapping tests" + ], + "tests": "401/422 permanent, 429/529 transient policy categories and malformed-success failures retain distinct codes with no secrets.", + "requirements": [ + "HYF-JEV-008", + "HYF-RUN-005", + "HYF-RUN-008" + ], + "introduces_tasks": [], + "commit_message": "provider: map Jev failures into stable internal outcomes", + "expected_result": "Define auth, request validation, capacity, transport, deadline and answer-contract error mapping with safe bounded diagnostics; distinguish business result types. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-jev-contract" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S047" + ] + }, + { + "id": "S049", + "title": "Add provider response projection tests", + "phase": "C — evaluator contracts and pure provider handling", + "purpose": "Verify adapter output against domain expectations.", + "scope": "Map validated provider answers to internal semantic results without rebuilding trusted text/IDs; retain probabilities and actual configuration diagnostics as approved.", + "files": [ + "src/hyf_provider/jev/adapter.mojo", + "projection contract fixtures" + ], + "tests": "Injected alternate original text/IDs cannot replace source values; raw Score and normalized diagnostic are not confused; unknown evidence retained.", + "requirements": [ + "HYF-DATA-001", + "HYF-DATA-009", + "HYF-JEV-005" + ], + "introduces_tasks": [], + "commit_message": "provider: add provider response projection tests", + "expected_result": "Map validated provider answers to internal semantic results without rebuilding trusted text/IDs; retain probabilities and actual configuration diagnostics as approved. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-jev-contract" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S048" + ] + }, + { + "id": "S050", + "title": "Add data-minimized state projection", + "phase": "C — evaluator contracts and pure provider handling", + "purpose": "Limit what leaves the application boundary.", + "scope": "Project only authorized relevant source/context/product/need information into Jev state; preserve essential negation/association context and exclude secrets/unneeded private fields.", + "files": [ + "src/hyf_application/provider_state.mojo", + "minimization tests" + ], + "tests": "Golden outbound state excludes credentials/private address/unrelated records; minimal removal does not drop tested semantic context.", + "requirements": [ + "HYF-JEV-009", + "HYF-SEC-004", + "HYF-SEC-005" + ], + "introduces_tasks": [], + "commit_message": "provider: add data-minimized state projection", + "expected_result": "Project only authorized relevant source/context/product/need information into Jev state; preserve essential negation/association context and exclude secrets/unneeded private fields. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-jev-contract" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S049" + ] + }, + { + "id": "S051", + "title": "Plan independent and dependent question stages", + "phase": "C — evaluator contracts and pure provider handling", + "purpose": "Prevent invalid within-call dependencies and uncontrolled fan-out.", + "scope": "Implement bounded grouping of independent questions and explicit later dependent stages, charging request/question/state budgets; avoid unnecessary calls on deterministic failures.", + "files": [ + "src/hyf_application/evaluation_plan.mojo", + "plan tests" + ], + "tests": "Dependent answer use happens after validated prior response; max calls/questions enforced; shared answers not treated as independent evidence.", + "requirements": [ + "HYF-JEV-003", + "HYF-JEV-009", + "HYF-RUN-004" + ], + "introduces_tasks": [], + "commit_message": "provider: plan independent and dependent question stages", + "expected_result": "Implement bounded grouping of independent questions and explicit later dependent stages, charging request/question/state budgets; avoid unnecessary calls on deterministic failures. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-jev-contract" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S050" + ] + }, + { + "id": "S052", + "title": "Add a TypeSafe runtime profile", + "phase": "D — runtime configuration and transport", + "purpose": "Introduce Jev without changing existing max_local configuration semantics.", + "scope": "Extend runtime parsing with explicit provider/model/endpoint/secret-reference/timeout fields following existing conventions; disabled by default pending operator configuration.", + "files": [ + "src/hyf_runtime/config.mojo", + "src/hyf_provider/config.mojo", + "runtime config tests" + ], + "tests": "Existing max_local fixtures still parse; invalid/unknown combinations fail; real credentials never appear in checked-in examples.", + "requirements": [ + "HYF-RUN-006", + "HYF-JEV-001", + "HYF-SEC-005" + ], + "introduces_tasks": [], + "commit_message": "runtime: add a TypeSafe runtime profile", + "expected_result": "Extend runtime parsing with explicit provider/model/endpoint/secret-reference/timeout fields following existing conventions; disabled by default pending operator configuration. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-contract" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S051" + ] + }, + { + "id": "S053", + "title": "Separate capability support and permission", + "phase": "D — runtime configuration and transport", + "purpose": "Remove deterministic implementation as an accidental registration gate.", + "scope": "Represent implementation support, provider configuration, assistance permission, readiness and operation exposure independently; retain existing discovery compatibility.", + "files": [ + "src/hyf_core/capabilities/registry.mojo", + "src/hyf_assist/contract.mojo", + "registry tests" + ], + "tests": "Assisted-only support can be represented without advertising unimplemented work; disabled/unconfigured distinctions are stable.", + "requirements": [ + "HYF-RUN-006", + "HYF-BUY-006", + "HYF-CORE-005" + ], + "introduces_tasks": [], + "commit_message": "runtime: separate capability support and permission", + "expected_result": "Represent implementation support, provider configuration, assistance permission, readiness and operation exposure independently; retain existing discovery compatibility. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-contract" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S052" + ] + }, + { + "id": "S054", + "title": "Add operation enablement and kill switches", + "phase": "D — runtime configuration and transport", + "purpose": "Permit safe rollout and incident isolation.", + "scope": "Introduce server-controlled per-operation/provider disablement with validated combinations; preserve old capabilities and prohibit end-user flag overrides.", + "files": [ + "src/hyf_runtime/config.mojo", + "runtime selection tests" + ], + "tests": "All flag/permission combinations tested; disabling Jev does not accidentally enable inference fallback or mutate business behavior.", + "requirements": [ + "HYF-RUN-006", + "HYF-REL-006", + "HYF-SEC-005" + ], + "introduces_tasks": [], + "commit_message": "runtime: add operation enablement and kill switches", + "expected_result": "Introduce server-controlled per-operation/provider disablement with validated combinations; preserve old capabilities and prohibit end-user flag overrides. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-contract" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S053" + ] + }, + { + "id": "S055", + "title": "Implement shared execution budgets", + "phase": "D — runtime configuration and transport", + "purpose": "Charge every stage against one remaining deadline.", + "scope": "Create monotonic request budget and finite resource counters at acceptance; cap by runtime policy and pass remaining values to stages/transport.", + "files": [ + "src/hyf_application/budget.mojo", + "budget tests" + ], + "tests": "Queue-consumed/zero/expired budgets, parsing costs and multiple provider stages cannot reset the deadline; bounded counters tested.", + "requirements": [ + "HYF-RUN-004", + "HYF-RUN-010" + ], + "introduces_tasks": [], + "commit_message": "runtime: implement shared execution budgets", + "expected_result": "Create monotonic request budget and finite resource counters at acceptance; cap by runtime policy and pass remaining values to stages/transport. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-contract" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S054" + ] + }, + { + "id": "S056", + "title": "Add retry classification and scheduling", + "phase": "D — runtime configuration and transport", + "purpose": "Bound transient recovery without retrying permanent faults.", + "scope": "Implement retry policy over typed failures, remaining time, attempt caps and deterministic test jitter; honor applicable retry timing without nested retry loops.", + "files": [ + "src/hyf_application/retry.mojo", + "virtual-time retry tests" + ], + "tests": "Permanent faults cause no retry; temporary capacity retries stop at budget/attempt cap; retry delay cannot exceed remaining budget.", + "requirements": [ + "HYF-RUN-005", + "HYF-TEST-007" + ], + "introduces_tasks": [], + "commit_message": "runtime: add retry classification and scheduling", + "expected_result": "Implement retry policy over typed failures, remaining time, attempt caps and deterministic test jitter; honor applicable retry timing without nested retry loops. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-contract" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S055" + ] + }, + { + "id": "S057", + "title": "Add circuit and readiness state", + "phase": "D — runtime configuration and transport", + "purpose": "Avoid needless remote health roundtrips and failure storms.", + "scope": "Implement minimal bounded provider health/circuit state if needed by selected runtime; local liveness remains distinct and no per-request preflight inference is added.", + "files": [ + "src/hyf_runtime/provider_health.mojo", + "virtual-time state tests" + ], + "tests": "Open/half-open/recovered transitions, provider disablement and process-live/provider-down states; actual inference call counts verified.", + "requirements": [ + "HYF-RUN-005", + "HYF-RUN-008" + ], + "introduces_tasks": [], + "commit_message": "runtime: add circuit and readiness state", + "expected_result": "Implement minimal bounded provider health/circuit state if needed by selected runtime; local liveness remains distinct and no per-request preflight inference is added. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-contract" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S056" + ] + }, + { + "id": "S058", + "title": "Build the strict local provider server", + "phase": "D — runtime configuration and transport", + "purpose": "Exercise production HTTP without real Jev.", + "scope": "Create a test-only scripted local endpoint that owns a port-zero listener, reports readiness, reads complete requests and asserts expected path/headers/body/calls.", + "files": [ + "tests/support/jev_server.mojo", + "server harness tests" + ], + "tests": "Wrong body/path/extra call/missing call fail; fragmented requests larger than one read work; no reserve-rebind or external fallback.", + "requirements": [ + "HYF-TEST-006", + "HYF-TEST-007", + "HYF-TEST-005" + ], + "introduces_tasks": [], + "commit_message": "runtime: build the strict local provider server", + "expected_result": "Create a test-only scripted local endpoint that owns a port-zero listener, reports readiness, reads complete requests and asserts expected path/headers/body/calls. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-contract" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S057" + ] + }, + { + "id": "S059", + "title": "Add local transport failure scripting", + "phase": "D — runtime configuration and transport", + "purpose": "Test boundary faults without fragile sleeps.", + "scope": "Extend the server with explicit status/raw-body/connection-close/blocked-read scripts and bounded control handshakes; preserve simple deterministic behavior.", + "files": [ + "tests/support/jev_server.mojo", + "raw provider fixtures" + ], + "tests": "Invalid JSON, malformed HTTP, truncated body, close-before-response and delay-release scripts are reproducible and cleaned up.", + "requirements": [ + "HYF-JEV-004", + "HYF-RUN-007", + "HYF-TEST-007" + ], + "introduces_tasks": [], + "commit_message": "runtime: add local transport failure scripting", + "expected_result": "Extend the server with explicit status/raw-body/connection-close/blocked-read scripts and bounded control handshakes; preserve simple deterministic behavior. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-contract" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S058" + ] + }, + { + "id": "S060", + "title": "Implement the production Jev HTTP client", + "phase": "D — runtime configuration and transport", + "purpose": "Connect the new adapter through the actual transport dependency.", + "scope": "Add dedicated POST evaluation client with verified external HTTPS, bounded request/response bodies, configured remaining timeout and no chat-completions decoding.", + "files": [ + "src/hyf_provider/jev/client.mojo", + "transport integration tests", + "pixi.toml" + ], + "tests": "Run actual client against strict loopback server for success and typed HTTP failures; introduce test-jev-transport and default offline coverage.", + "requirements": [ + "HYF-JEV-001", + "HYF-SEC-003", + "HYF-RUN-004" + ], + "introduces_tasks": [ + "test-jev-transport" + ], + "commit_message": "runtime: implement the production Jev HTTP client", + "expected_result": "Add dedicated POST evaluation client with verified external HTTPS, bounded request/response bodies, configured remaining timeout and no chat-completions decoding. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-contract", + "pixi run test-jev-transport" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S059" + ] + }, + { + "id": "S061", + "title": "Test TLS verification and endpoint policy", + "phase": "D — runtime configuration and transport", + "purpose": "Prevent test flexibility from weakening production security.", + "scope": "Implement/verify certificate and hostname checks, allowed external scheme and credential-preserving redirect policy using local generated test credentials and discovered dependency features.", + "files": [ + "src/hyf_provider/jev/client.mojo", + "runtime endpoint validation", + "local TLS tests" + ], + "tests": "Untrusted/expired/wrong-host certificates and cross-origin credential redirects fail; local test exception cannot be selected by request content.", + "requirements": [ + "HYF-SEC-003", + "HYF-SEC-005", + "HYF-TEST-004" + ], + "introduces_tasks": [], + "commit_message": "runtime: test TLS verification and endpoint policy", + "expected_result": "Implement/verify certificate and hostname checks, allowed external scheme and credential-preserving redirect policy using local generated test credentials and discovered dependency features. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-contract", + "pixi run test-jev-transport" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S060" + ] + }, + { + "id": "S062", + "title": "Integrate bounded client retry and budget behavior", + "phase": "D — runtime configuration and transport", + "purpose": "Prove policy works with the real transport.", + "scope": "Connect typed transport outcomes to the approved retry/circuit/budget implementation; ensure exactly one retry owner and correct remaining deadline on each attempt.", + "files": [ + "src/hyf_application/provider_execution.mojo", + "transport policy tests" + ], + "tests": "429/529 scripted recovery, 401/422 no retry, exhaustion, malformed success and interrupted transport preserve safe result categories.", + "requirements": [ + "HYF-RUN-004", + "HYF-RUN-005", + "HYF-JEV-008" + ], + "introduces_tasks": [], + "commit_message": "runtime: integrate bounded client retry and budget behavior", + "expected_result": "Connect typed transport outcomes to the approved retry/circuit/budget implementation; ensure exactly one retry owner and correct remaining deadline on each attempt. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-contract", + "pixi run test-jev-transport" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S061" + ] + }, + { + "id": "S063", + "title": "Verify transport cleanup and local cancellation", + "phase": "D — runtime configuration and transport", + "purpose": "Avoid leaked sockets/tasks and false remote-cancellation claims.", + "scope": "Add cleanup paths and bounded cancellation/termination behavior using actual transport capabilities; document unsupported mechanisms instead of inventing a public cancel API.", + "files": [ + "src/hyf_provider/jev/client.mojo", + "transport lifecycle tests" + ], + "tests": "Timeout/read-block/cancel/connection-error all release local resources; watchdog prevents hangs and output never claims remote charges ceased.", + "requirements": [ + "HYF-RUN-007", + "HYF-TEST-007" + ], + "introduces_tasks": [], + "commit_message": "runtime: verify transport cleanup and local cancellation", + "expected_result": "Add cleanup paths and bounded cancellation/termination behavior using actual transport capabilities; document unsupported mechanisms instead of inventing a public cancel API. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-contract", + "pixi run test-jev-transport" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S062" + ] + }, + { + "id": "S064", + "title": "Add runtime composition for Jev", + "phase": "D — runtime configuration and transport", + "purpose": "Wire real and test boundaries without public test switches.", + "scope": "Construct provider/evaluator/clock/budgets from trusted runtime configuration and dependencies; test injection is test-only and max_local remains supported.", + "files": [ + "src/hyf_runtime/composition.mojo (proposed)", + "composition tests" + ], + "tests": "Real-config selection, disabled/unconfigured states and injected test evaluator compile and behave consistently; no production fixture fallback.", + "requirements": [ + "HYF-CORE-003", + "HYF-RUN-006", + "HYF-TEST-005" + ], + "introduces_tasks": [], + "commit_message": "runtime: add runtime composition for Jev", + "expected_result": "Construct provider/evaluator/clock/budgets from trusted runtime configuration and dependencies; test injection is test-only and max_local remains supported. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-contract", + "pixi run test-jev-transport" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S063" + ] + }, + { + "id": "S065", + "title": "Extract existing orchestration from stdio", + "phase": "E — interpretation use cases", + "purpose": "Make transport independent without rewriting business behavior.", + "scope": "Move current provider execution orchestration into an application module and adapt stdio to call it; keep old query rewrite outputs and fallback metadata unchanged.", + "files": [ + "src/hyf_stdio/provider_execution.mojo", + "src/hyf_application/", + "legacy regression tests", + "pixi.toml" + ], + "tests": "Run old assisted/unavailable/unsupported cases through both boundary and stdio; introduce test-application for real orchestrator tests.", + "requirements": [ + "HYF-CORE-003", + "HYF-CORE-005", + "HYF-JEV-008" + ], + "introduces_tasks": [ + "test-application" + ], + "commit_message": "application: extract existing orchestration from stdio", + "expected_result": "Move current provider execution orchestration into an application module and adapt stdio to call it; keep old query rewrite outputs and fallback metadata unchanged. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S064" + ] + }, + { + "id": "S066", + "title": "Validate interpretation source context", + "phase": "E — interpretation use cases", + "purpose": "Protect trusted evidence before inference.", + "scope": "Implement common source/revision/actor/context validation and bounded input normalization, with no implicit authentication or arbitrary URL fetching.", + "files": [ + "src/hyf_application/interpretation_context.mojo", + "context tests" + ], + "tests": "Missing/mismatched source revisions and cross-scope supplied context reject before provider invocation; legitimate source text preserved.", + "requirements": [ + "HYF-DATA-001", + "HYF-SEC-001", + "HYF-SEC-002" + ], + "introduces_tasks": [], + "commit_message": "application: validate interpretation source context", + "expected_result": "Implement common source/revision/actor/context validation and bounded input normalization, with no implicit authentication or arbitrary URL fetching. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S065" + ] + }, + { + "id": "S067", + "title": "Interpret product-specific supply status", + "phase": "E — interpretation use cases", + "purpose": "Implement first farm-update semantic stage.", + "scope": "Use candidate mentions and explicit bounded questions to return per-product offer/forecast/unavailable/unclear semantic results; copy evidence from original source.", + "files": [ + "src/hyf_application/farm_update.mojo", + "farm status fixtures" + ], + "tests": "Tomatoes and basil receive separate states; negation and forecast remain distinct; scripted provider call shapes verified.", + "requirements": [ + "HYF-FARM-001", + "HYF-FARM-002", + "HYF-JEV-002" + ], + "introduces_tasks": [], + "commit_message": "application: interpret product-specific supply status", + "expected_result": "Use candidate mentions and explicit bounded questions to return per-product offer/forecast/unavailable/unclear semantic results; copy evidence from original source. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S066" + ] + }, + { + "id": "S068", + "title": "Associate quantities with farm products", + "phase": "E — interpretation use cases", + "purpose": "Prevent quantities migrating between crops.", + "scope": "Select supported quantity spans/roles for each identified product and pass them to deterministic normalization; return unresolved when associations conflict.", + "files": [ + "src/hyf_application/farm_update.mojo", + "quantity association fixtures" + ], + "tests": "Multiple numbers/crops, repeated quantities, totals versus remaining and no quantity produce correct evidence-backed fields.", + "requirements": [ + "HYF-FARM-004", + "HYF-DATA-002", + "HYF-DATA-004" + ], + "introduces_tasks": [], + "commit_message": "application: associate quantities with farm products", + "expected_result": "Select supported quantity spans/roles for each identified product and pass them to deterministic normalization; return unresolved when associations conflict. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S067" + ] + }, + { + "id": "S069", + "title": "Interpret supply update operations", + "phase": "E — interpretation use cases", + "purpose": "Represent additions and balances distinctly.", + "scope": "Map source semantics into proposed addition/remaining/replacement/withdrawal/correction operations without applying them; preserve ambiguous operation state.", + "files": [ + "src/hyf_application/farm_update.mojo", + "update operation fixtures" + ], + "tests": "Another/left/total twenty-box messages differ; contradictory wording requests review; no inventory write dependency exists.", + "requirements": [ + "HYF-FARM-003", + "HYF-FARM-009" + ], + "introduces_tasks": [], + "commit_message": "application: interpret supply update operations", + "expected_result": "Map source semantics into proposed addition/remaining/replacement/withdrawal/correction operations without applying them; preserve ambiguous operation state. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S068" + ] + }, + { + "id": "S070", + "title": "Resolve authorized change targets", + "phase": "E — interpretation use cases", + "purpose": "Prevent broad or stale withdrawals.", + "scope": "Resolve proposed changes only against bounded authorized supplied target records; retain unknown/conflicting targets and expected revisions.", + "files": [ + "src/hyf_application/farm_update.mojo", + "target fixtures" + ], + "tests": "Basil unavailable does not withdraw unrelated crop/lot; ambiguous multiple basil targets block application; stale target evidence preserved for review.", + "requirements": [ + "HYF-FARM-007", + "HYF-DATA-010", + "HYF-SEC-001" + ], + "introduces_tasks": [], + "commit_message": "application: resolve authorized change targets", + "expected_result": "Resolve proposed changes only against bounded authorized supplied target records; retain unknown/conflicting targets and expected revisions. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S069" + ] + }, + { + "id": "S071", + "title": "Interpret farm fulfillment and timing claims", + "phase": "E — interpretation use cases", + "purpose": "Keep reports distinct from guaranteed delivery.", + "scope": "Extract offered method/window/area evidence and deterministically resolve supported time expressions; missing slot/area remains unresolved where material.", + "files": [ + "src/hyf_application/farm_update.mojo", + "fulfillment/time fixtures" + ], + "tests": "Friday from source context, unknown delivery area/slot and ambiguous timezone do not become confirmed commitments.", + "requirements": [ + "HYF-DATA-007", + "HYF-FARM-004", + "HYF-MATCH-008" + ], + "introduces_tasks": [], + "commit_message": "application: interpret farm fulfillment and timing claims", + "expected_result": "Extract offered method/window/area evidence and deterministically resolve supported time expressions; missing slot/area remains unresolved where material. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S070" + ] + }, + { + "id": "S072", + "title": "Assemble farm review and clarification output", + "phase": "E — interpretation use cases", + "purpose": "Make interpretation useful without overclaiming authority.", + "scope": "Combine validated claims/changes/evidence into reviewable result and material next-action questions; keep optional missing information nonblocking for drafting.", + "files": [ + "src/hyf_application/farm_update.mojo", + "review output fixtures" + ], + "tests": "Optional price omission permits draft; ambiguous withdrawal target blocks apply; correct claims present and incorrect extras absent.", + "requirements": [ + "HYF-FARM-005", + "HYF-FARM-009", + "HYF-TEST-010" + ], + "introduces_tasks": [], + "commit_message": "application: assemble farm review and clarification output", + "expected_result": "Combine validated claims/changes/evidence into reviewable result and material next-action questions; keep optional missing information nonblocking for drafting. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S071" + ] + }, + { + "id": "S073", + "title": "Apply explicit farm clarification context", + "phase": "E — interpretation use cases", + "purpose": "Support follow-up without hidden session memory.", + "scope": "Read supplied linked clarification evidence and produce a new interpretation preserving original source and revision relationships; reject unrelated/stale answers.", + "files": [ + "src/hyf_application/farm_update.mojo", + "farm clarification journey" + ], + "tests": "Quantity clarification resolves its field only; original message unchanged; source corrections do not silently overwrite prior accepted state.", + "requirements": [ + "HYF-FARM-006", + "HYF-DATA-010" + ], + "introduces_tasks": [], + "commit_message": "application: apply explicit farm clarification context", + "expected_result": "Read supplied linked clarification evidence and produce a new interpretation preserving original source and revision relationships; reject unrelated/stale answers. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S072" + ] + }, + { + "id": "S074", + "title": "Handle farm inference failures safely", + "phase": "E — interpretation use cases", + "purpose": "Do not replace unavailable inference with false certainty.", + "scope": "Return specified unresolved/degraded or typed error results for provider/schema/budget failure; never auto-confirm a heuristic farm interpretation.", + "files": [ + "src/hyf_application/farm_update.mojo", + "failure fixtures" + ], + "tests": "Provider timeout, invalid answer and disabled provider preserve source/review status and produce no stock or mutation claims.", + "requirements": [ + "HYF-JEV-008", + "HYF-FARM-009", + "HYF-RUN-004" + ], + "introduces_tasks": [], + "commit_message": "application: handle farm inference failures safely", + "expected_result": "Return specified unresolved/degraded or typed error results for provider/schema/budget failure; never auto-confirm a heuristic farm interpretation. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S073" + ] + }, + { + "id": "S075", + "title": "Discover buyer demand lines", + "phase": "E — interpretation use cases", + "purpose": "Build explicit raw-input demand decomposition.", + "scope": "Use bounded candidate discovery and semantic associations to identify independent demand lines, preserving unsupported/ambiguous products and source references.", + "files": [ + "src/hyf_application/buyer_request.mojo", + "multi-line fixtures" + ], + "tests": "Two products/two quantities remain separate; unknown product and repeated phrase are not collapsed into a guessed line.", + "requirements": [ + "HYF-BUY-001", + "HYF-FARM-008", + "HYF-DATA-002" + ], + "introduces_tasks": [], + "commit_message": "application: discover buyer demand lines", + "expected_result": "Use bounded candidate discovery and semantic associations to identify independent demand lines, preserving unsupported/ambiguous products and source references. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S074" + ] + }, + { + "id": "S076", + "title": "Interpret condition strength and negation", + "phase": "E — interpretation use cases", + "purpose": "Keep preferences from becoming requirements or permissions.", + "scope": "Map each condition to required/preferred/excluded/permitted/not-stated with applicable line/request scope; preserve explicit negation and uncertainty.", + "files": [ + "src/hyf_application/buyer_request.mojo", + "constraint fixtures" + ], + "tests": "Delivery not pickup, ideally delivered, explicit seconds permission and unstated substitution are handled separately.", + "requirements": [ + "HYF-BUY-002", + "HYF-BUY-003" + ], + "introduces_tasks": [], + "commit_message": "application: interpret condition strength and negation", + "expected_result": "Map each condition to required/preferred/excluded/permitted/not-stated with applicable line/request scope; preserve explicit negation and uncertainty. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S075" + ] + }, + { + "id": "S077", + "title": "Normalize buyer quantity time and price conditions", + "phase": "E — interpretation use cases", + "purpose": "Reuse deterministic primitives instead of model arithmetic.", + "scope": "Associate spans then normalize through existing quantity/unit/time/money rules; preserve material unresolved fields and original expressions.", + "files": [ + "src/hyf_application/buyer_request.mojo", + "normalization fixtures" + ], + "tests": "Pack ambiguity, exact threshold, missing date zone and unknown price/currency produce correct known/unresolved needs.", + "requirements": [ + "HYF-DATA-003", + "HYF-DATA-004", + "HYF-DATA-006", + "HYF-DATA-007" + ], + "introduces_tasks": [], + "commit_message": "application: normalize buyer quantity time and price conditions", + "expected_result": "Associate spans then normalize through existing quantity/unit/time/money rules; preserve material unresolved fields and original expressions. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S076" + ] + }, + { + "id": "S078", + "title": "Detect contradictory buyer requirements", + "phase": "E — interpretation use cases", + "purpose": "Expose conflicts rather than silently choose a last token.", + "scope": "Validate incompatible requirements and exclusions across applicable scopes; return review/clarification state rather than an invented resolved intent.", + "files": [ + "src/hyf_application/buyer_request.mojo", + "contradiction fixtures" + ], + "tests": "Delivery required and delivery forbidden; incompatible quantities/time conditions; scoped versus request-level conflicts are covered.", + "requirements": [ + "HYF-BUY-003", + "HYF-BUY-005" + ], + "introduces_tasks": [], + "commit_message": "application: detect contradictory buyer requirements", + "expected_result": "Validate incompatible requirements and exclusions across applicable scopes; return review/clarification state rather than an invented resolved intent. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S077" + ] + }, + { + "id": "S079", + "title": "Assemble reviewable typed buyer needs", + "phase": "E — interpretation use cases", + "purpose": "Provide the stable input contract for matching.", + "scope": "Return typed needs with evidence, revisions, constraints and explicit review state; support supplied linked clarification without creating orders.", + "files": [ + "src/hyf_application/buyer_request.mojo", + "consumer-contract fixtures" + ], + "tests": "Typed output roundtrips to matching input; material questions are exposed; no order/reservation artifacts or hidden memory appear.", + "requirements": [ + "HYF-BUY-004", + "HYF-BUY-005", + "HYF-FARM-006" + ], + "introduces_tasks": [], + "commit_message": "application: assemble reviewable typed buyer needs", + "expected_result": "Return typed needs with evidence, revisions, constraints and explicit review state; support supplied linked clarification without creating orders. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S078" + ] + }, + { + "id": "S080", + "title": "Handle buyer interpretation failures safely", + "phase": "E — interpretation use cases", + "purpose": "Keep execution problems separate from unavailable supply.", + "scope": "Implement bounded failure/degradation semantics for disabled/invalid/timed-out provider responses without emitting a fabricated confirmed need.", + "files": [ + "src/hyf_application/buyer_request.mojo", + "buyer failure fixtures" + ], + "tests": "Inference failure remains review/error; not-stated conditions are not converted to false; source and version metadata preserved.", + "requirements": [ + "HYF-JEV-008", + "HYF-BUY-003", + "HYF-RUN-004" + ], + "introduces_tasks": [], + "commit_message": "application: handle buyer interpretation failures safely", + "expected_result": "Implement bounded failure/degradation semantics for disabled/invalid/timed-out provider responses without emitting a fabricated confirmed need. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S079" + ] + }, + { + "id": "S081", + "title": "Validate typed matching input and scope", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Prevent authorization or string-reparse shortcuts.", + "scope": "Accept bound typed need and supplied authorized snapshots/coverage; reject inconsistent identity/version/context and do not reparse rewritten query text.", + "files": [ + "src/hyf_application/buyer_match.mojo", + "matching input tests" + ], + "tests": "Cross-scope records reject before inference; reviewed need semantics retained; missing required context yields explicit input/unresolved handling.", + "requirements": [ + "HYF-BUY-004", + "HYF-MATCH-003", + "HYF-SEC-001" + ], + "introduces_tasks": [], + "commit_message": "matching: validate typed matching input and scope", + "expected_result": "Accept bound typed need and supplied authorized snapshots/coverage; reject inconsistent identity/version/context and do not reparse rewritten query text. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S080" + ] + }, + { + "id": "S082", + "title": "Validate and index supplied lots", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Prevent duplicate stock and quadratic duplicate scans.", + "scope": "Create bounded identity/revision indexing with explicit duplicate/conflict policy; no external market retrieval is added.", + "files": [ + "src/hyf_core/matching/candidates.mojo", + "duplicate fixture tests" + ], + "tests": "Duplicate same-lot records cannot double supply; conflicting revisions are not independent lots; maximum candidate bound enforced.", + "requirements": [ + "HYF-MATCH-005", + "HYF-DATA-010", + "HYF-RUN-002" + ], + "introduces_tasks": [], + "commit_message": "matching: validate and index supplied lots", + "expected_result": "Create bounded identity/revision indexing with explicit duplicate/conflict policy; no external market retrieval is added. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S081" + ] + }, + { + "id": "S083", + "title": "Implement product and substitution checks", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Gate product feasibility before preference scores.", + "scope": "Check catalogue product compatibility and explicit permitted substitutions using trusted/versioned evidence; uncertain semantic premises remain unknown.", + "files": [ + "src/hyf_core/matching/product_check.mojo", + "product fixtures" + ], + "tests": "Wrong crop fails despite high score; unknown alias conditional; explicit permitted substitute differs from unstated permission.", + "requirements": [ + "HYF-MATCH-001", + "HYF-MATCH-002", + "HYF-BUY-003" + ], + "introduces_tasks": [], + "commit_message": "matching: implement product and substitution checks", + "expected_result": "Check catalogue product compatibility and explicit permitted substitutions using trusted/versioned evidence; uncertain semantic premises remain unknown. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S082" + ] + }, + { + "id": "S084", + "title": "Implement grade and required-attribute checks", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Avoid treating semantic plausibility as verified attributes.", + "scope": "Evaluate explicitly required grade/certification/attribute conditions only from accepted evidence; distinguish culinary preference from safety or verification.", + "files": [ + "src/hyf_core/matching/attribute_check.mojo", + "grade/attribute tests" + ], + "tests": "Permitted seconds pass grade condition; required unverified certification remains unknown; unrelated marketing does not verify facts.", + "requirements": [ + "HYF-MATCH-001", + "HYF-MATCH-008" + ], + "introduces_tasks": [], + "commit_message": "matching: implement grade and required-attribute checks", + "expected_result": "Evaluate explicitly required grade/certification/attribute conditions only from accepted evidence; distinguish culinary preference from safety or verification. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S083" + ] + }, + { + "id": "S085", + "title": "Implement fulfillment method and area checks", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Require feasible delivery/pickup rather than a bonus.", + "scope": "Evaluate requested method and known service-area compatibility under supplied domain rules; unknown area remains conditional.", + "files": [ + "src/hyf_core/matching/fulfillment_check.mojo", + "fulfillment fixtures" + ], + "tests": "Delivery-only request versus pickup offer fails; missing area cannot pass; optional delivery preference is not a mandatory exclusion.", + "requirements": [ + "HYF-MATCH-001", + "HYF-MATCH-002", + "HYF-BUY-002" + ], + "introduces_tasks": [], + "commit_message": "matching: implement fulfillment method and area checks", + "expected_result": "Evaluate requested method and known service-area compatibility under supplied domain rules; unknown area remains conditional. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S084" + ] + }, + { + "id": "S086", + "title": "Implement availability and window checks", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Use real source/snapshot times rather than weekend keywords.", + "scope": "Compare supported normalized windows and verification freshness policies; preserve unknown slot/time evidence and explicit stale limitations.", + "files": [ + "src/hyf_core/matching/time_check.mojo", + "window fixtures" + ], + "tests": "Nonoverlapping windows fail; unknown slot conditional; boundary inclusion and record-versus-harvest age distinctions tested.", + "requirements": [ + "HYF-DATA-007", + "HYF-DATA-008", + "HYF-MATCH-001" + ], + "introduces_tasks": [], + "commit_message": "matching: implement availability and window checks", + "expected_result": "Compare supported normalized windows and verification freshness policies; preserve unknown slot/time evidence and explicit stale limitations. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S085" + ] + }, + { + "id": "S087", + "title": "Implement applicable price and minimum-order checks", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Compare only compatible known commercial conditions.", + "scope": "Evaluate stated ceilings/minimums against exact currency/basis/fee context; unresolved costs remain unknown only when material to a mandatory condition.", + "files": [ + "src/hyf_core/matching/price_check.mojo", + "price fixtures" + ], + "tests": "Missing optional price does not invent zero; unknown required total cost conditional; incompatible currencies/bases not silently compared.", + "requirements": [ + "HYF-DATA-006", + "HYF-MATCH-001" + ], + "introduces_tasks": [], + "commit_message": "matching: implement applicable price and minimum-order checks", + "expected_result": "Evaluate stated ceilings/minimums against exact currency/basis/fee context; unresolved costs remain unknown only when material to a mandatory condition. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S086" + ] + }, + { + "id": "S088", + "title": "Implement per-lot quantity feasibility", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Use exact available stock under buyer quantity policy.", + "scope": "Check available/unreserved quantity after trusted conversion; preserve approximate or unknown authority quantities under review policy.", + "files": [ + "src/hyf_core/matching/quantity_check.mojo", + "quantity fixtures" + ], + "tests": "50 required versus 30 with partial disallowed fails; equal threshold passes; unknown unreserved quantity conditional regardless of reported harvest.", + "requirements": [ + "HYF-DATA-003", + "HYF-MATCH-001", + "HYF-MATCH-006" + ], + "introduces_tasks": [], + "commit_message": "matching: implement per-lot quantity feasibility", + "expected_result": "Check available/unreserved quantity after trusted conversion; preserve approximate or unknown authority quantities under review policy. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S087" + ] + }, + { + "id": "S089", + "title": "Compose applicable checks before ranking", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Centralize hard-condition precedence across dimensions.", + "scope": "Aggregate check results with stable reasons and evidence, keeping conditional/ineligible/eligible sets distinct; do not call semantic ranker for known disqualified items.", + "files": [ + "src/hyf_core/matching/eligibility.mojo", + "src/hyf_application/buyer_match.mojo" + ], + "tests": "All fail/unknown/pass combinations and optional omissions tested; high-score ineligible injection cannot cross the boundary; zero wasted calls asserted.", + "requirements": [ + "HYF-MATCH-001", + "HYF-MATCH-002", + "HYF-JEV-009" + ], + "introduces_tasks": [], + "commit_message": "matching: compose applicable checks before ranking", + "expected_result": "Aggregate check results with stable reasons and evidence, keeping conditional/ineligible/eligible sets distinct; do not call semantic ranker for known disqualified items. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S088" + ] + }, + { + "id": "S090", + "title": "Group compatible lots by supplier", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Prepare bounded multi-lot plans without multi-supplier orchestration.", + "scope": "Group only same-supplier compatible product/pack/fulfillment/time lots under selected domain rules; unknown compatibility remains visible.", + "files": [ + "src/hyf_core/matching/grouping.mojo", + "grouping fixtures" + ], + "tests": "Compatible lots combine; cross-supplier or incompatible fulfillment lots cannot become one silently valid plan.", + "requirements": [ + "HYF-MATCH-004", + "HYF-MATCH-008" + ], + "introduces_tasks": [], + "commit_message": "matching: group compatible lots by supplier", + "expected_result": "Group only same-supplier compatible product/pack/fulfillment/time lots under selected domain rules; unknown compatibility remains visible. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S089" + ] + }, + { + "id": "S091", + "title": "Implement bounded single-line allocation", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Produce quantity-valid plans from compatible lots.", + "scope": "Allocate a demand line over a bounded compatible same-supplier set using explicit deterministic ordering and exact arithmetic; return truncation/unsupported limits honestly.", + "files": [ + "src/hyf_core/matching/allocator.mojo", + "independent single-line oracle tests" + ], + "tests": "20+30 meets 50 without overshoot; 20+20 fails full request; bounds terminate deterministically; no optimality claim.", + "requirements": [ + "HYF-MATCH-004", + "HYF-MATCH-005", + "HYF-TEST-008" + ], + "introduces_tasks": [], + "commit_message": "matching: implement bounded single-line allocation", + "expected_result": "Allocate a demand line over a bounded compatible same-supplier set using explicit deterministic ordering and exact arithmetic; return truncation/unsupported limits honestly. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S090" + ] + }, + { + "id": "S092", + "title": "Enforce conservation across multiple demand lines", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Stop one lot being reused twice within a plan.", + "scope": "Track residual stock by underlying lot through multi-line allocations and validate every completed plan independently of planner heuristics.", + "files": [ + "src/hyf_core/matching/allocator.mojo", + "src/hyf_core/matching/plan_validation.mojo" + ], + "tests": "Shared lot across two lines cannot exceed stock; duplicate candidate IDs do not evade conservation; independent small enumeration oracle compares feasibility.", + "requirements": [ + "HYF-MATCH-005", + "HYF-BUY-001", + "HYF-TEST-008" + ], + "introduces_tasks": [], + "commit_message": "matching: enforce conservation across multiple demand lines", + "expected_result": "Track residual stock by underlying lot through multi-line allocations and validate every completed plan independently of planner heuristics. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S091" + ] + }, + { + "id": "S093", + "title": "Represent explicit partial-fulfillment outcomes", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Respect buyer permission and disclose uncovered demand.", + "scope": "Allow partial plans only under an explicit bound buyer policy; report covered and uncovered quantities/lines without calling a partial plan full fulfillment.", + "files": [ + "src/hyf_core/matching/allocator.mojo", + "partial-plan fixtures" + ], + "tests": "Partial denied fails shortage; partial permitted carries exact deficit; unknown partial policy cannot grant permission.", + "requirements": [ + "HYF-MATCH-006", + "HYF-BUY-003" + ], + "introduces_tasks": [], + "commit_message": "matching: represent explicit partial-fulfillment outcomes", + "expected_result": "Allow partial plans only under an explicit bound buyer policy; report covered and uncovered quantities/lines without calling a partial plan full fulfillment. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S092" + ] + }, + { + "id": "S094", + "title": "Represent alternative plans and planner limitations", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Avoid global or simultaneous-commitment overclaims.", + "scope": "Return bounded alternative plans with coverage and supported single-supplier mode; clarify that alternatives may share stock but cannot all be assumed reservable.", + "files": [ + "src/hyf_core/matching/plan.mojo", + "src/hyf_core/matching/coverage.mojo" + ], + "tests": "Unsupported multi-supplier request is explicit; no eligible supplied plan does not imply global absence; alternatives never mark inventory reserved.", + "requirements": [ + "HYF-MATCH-004", + "HYF-MATCH-007", + "HYF-MATCH-010" + ], + "introduces_tasks": [], + "commit_message": "matching: represent alternative plans and planner limitations", + "expected_result": "Return bounded alternative plans with coverage and supported single-supplier mode; clarify that alternatives may share stock but cannot all be assumed reservable. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S093" + ] + }, + { + "id": "S095", + "title": "Gate semantic suitability on sufficient evidence", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Keep missing evidence out of ordered rubrics.", + "scope": "Implement evidence-sufficiency selection before scoring each relevant semantic dimension; unknown mandatory premises remain conditional and optional unknown scores are labeled.", + "files": [ + "src/hyf_application/match_semantics.mojo", + "evidence gating fixtures" + ], + "tests": "Unknown is not midpoint; low suitability differs from insufficient evidence; no model call changes prior mandatory failures.", + "requirements": [ + "HYF-MATCH-008", + "HYF-JEV-002" + ], + "introduces_tasks": [], + "commit_message": "matching: gate semantic suitability on sufficient evidence", + "expected_result": "Implement evidence-sufficiency selection before scoring each relevant semantic dimension; unknown mandatory premises remain conditional and optional unknown scores are labeled. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S094" + ] + }, + { + "id": "S096", + "title": "Add culinary-use semantic scoring", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Use Jev for a narrowly defined valuable preference.", + "scope": "Build a versioned rubric for stated culinary fit using relevant authorized product/request context; exclude quantity/date/price/transaction decisions.", + "files": [ + "src/hyf_application/questions/culinary_fit", + "src/hyf_application/match_semantics.mojo" + ], + "tests": "Exact outbound question/state and scripted ordered Score response mapped; safety/certification conclusions are not produced.", + "requirements": [ + "HYF-JEV-007", + "HYF-MATCH-008", + "HYF-JEV-009" + ], + "introduces_tasks": [], + "commit_message": "matching: add culinary-use semantic scoring", + "expected_result": "Build a versioned rubric for stated culinary fit using relevant authorized product/request context; exclude quantity/date/price/transaction decisions. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S095" + ] + }, + { + "id": "S097", + "title": "Compose normalized versioned preferences", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Make unlike rubric scales comparable deliberately.", + "scope": "Normalize raw scores to declared scales and combine justified deterministic preference metrics with explicit versioned weights; missing dimensions follow approved policy.", + "files": [ + "src/hyf_core/matching/rank.mojo", + "score normalization fixtures" + ], + "tests": "Three-level 0..2 and two-level 0..1 normalization, unknown dimension behavior, no success-probability labeling and finite arithmetic tested.", + "requirements": [ + "HYF-MATCH-009", + "HYF-JEV-005" + ], + "introduces_tasks": [], + "commit_message": "matching: compose normalized versioned preferences", + "expected_result": "Normalize raw scores to declared scales and combine justified deterministic preference metrics with explicit versioned weights; missing dimensions follow approved policy. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S096" + ] + }, + { + "id": "S098", + "title": "Use deterministic efficient ranking and tie breaks", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Eliminate incidental order and list-copy growth.", + "scope": "Sort eligible and conditional groups separately with stable deterministic tie policy; bound alternatives and preserve reasons independent of output order.", + "files": [ + "src/hyf_core/matching/rank.mojo", + "permutation and complexity tests" + ], + "tests": "Permuting fixed candidates/premises preserves ordering; ties stable; ineligible excluded; bounded input scaling measured without brittle timing assertions.", + "requirements": [ + "HYF-MATCH-009", + "HYF-MATCH-002", + "HYF-RUN-002" + ], + "introduces_tasks": [], + "commit_message": "matching: use deterministic efficient ranking and tie breaks", + "expected_result": "Sort eligible and conditional groups separately with stable deterministic tie policy; bound alternatives and preserve reasons independent of output order. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S097" + ] + }, + { + "id": "S099", + "title": "Generate evidence-backed match explanations", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Expose verified reasons and unresolved actions without model prose.", + "scope": "Render safe reason-code/evidence projections and next-confirmation requirements from assessments/plans; do not leak private source text by default.", + "files": [ + "src/hyf_application/match_output.mojo", + "consumer explanation fixtures" + ], + "tests": "Conditional versus eligible labels, uncovered demand, private evidence filtering and no reserved/global-no-supply wording assertions.", + "requirements": [ + "HYF-MATCH-007", + "HYF-MATCH-010", + "HYF-SEC-004" + ], + "introduces_tasks": [], + "commit_message": "matching: generate evidence-backed match explanations", + "expected_result": "Render safe reason-code/evidence projections and next-confirmation requirements from assessments/plans; do not leak private source text by default. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S098" + ] + }, + { + "id": "S100", + "title": "Handle semantic-ranking failure without changing feasibility", + "phase": "F — deterministic matching and semantic ranking", + "purpose": "Provide honest degraded advisory matching.", + "scope": "Use the declared deterministic preference fallback or partial assessment when Jev is unavailable; retain all mandatory unknowns/failures and actual backend status.", + "files": [ + "src/hyf_application/buyer_match.mojo", + "ranking outage fixtures" + ], + "tests": "Jev timeout preserves eligibility categories, labels degradation and never returns failure as business unavailability; no hidden heuristic stock inference.", + "requirements": [ + "HYF-JEV-008", + "HYF-MATCH-001", + "HYF-RUN-008" + ], + "introduces_tasks": [], + "commit_message": "matching: handle semantic-ranking failure without changing feasibility", + "expected_result": "Use the declared deterministic preference fallback or partial assessment when Jev is unavailable; retain all mandatory unknowns/failures and actual backend status. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S099" + ] + }, + { + "id": "S101", + "title": "Implement persistent bounded request reading", + "phase": "G — public process and wire integration", + "purpose": "Replace one-shot execution without changing business dispatch.", + "scope": "Read newline-delimited frames until EOF using bounded buffering and correct UTF-8/frame boundaries; retain chosen final-frame policy.", + "files": [ + "src/hyf_stdio/server.mojo", + "process reader tests" + ], + "tests": "Fragmented and coalesced requests, escaped newlines, empty EOF and bounded partial EOF cases work per contract; no unbounded input.", + "requirements": [ + "HYF-RUN-001", + "HYF-RUN-002", + "HYF-CORE-005" + ], + "introduces_tasks": [], + "commit_message": "stdio: implement persistent bounded request reading", + "expected_result": "Read newline-delimited frames until EOF using bounded buffering and correct UTF-8/frame boundaries; retain chosen final-frame policy. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-transport" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S100" + ] + }, + { + "id": "S102", + "title": "Flush ordered responses and isolate diagnostics", + "phase": "G — public process and wire integration", + "purpose": "Make persistent use observable and deadlock-resistant.", + "scope": "Write complete responses in sequence, flush appropriately and keep diagnostics on stderr; bound output handling and honor one-in-flight contract.", + "files": [ + "src/hyf_stdio/server.mojo", + "src/hyf_stdio response writer", + "process tests" + ], + "tests": "Multiple requests without closing stdin receive responses; stderr noise cannot corrupt JSON; slow reader/output limits remain bounded.", + "requirements": [ + "HYF-RUN-001", + "HYF-RUN-003", + "HYF-RUN-007" + ], + "introduces_tasks": [], + "commit_message": "stdio: flush ordered responses and isolate diagnostics", + "expected_result": "Write complete responses in sequence, flush appropriately and keep diagnostics on stderr; bound output handling and honor one-in-flight contract. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-transport" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S101" + ] + }, + { + "id": "S103", + "title": "Recover from malformed framed requests", + "phase": "G — public process and wire integration", + "purpose": "Keep one bad message from poisoning the session.", + "scope": "Return existing-compatible safe errors for recoverable invalid frames and continue; apply explicit fail/close policy for oversized/unrecoverable framing.", + "files": [ + "src/hyf_stdio/server.mojo", + "raw protocol fixtures" + ], + "tests": "Valid-invalid-valid yields expected responses; missing ID handled without fabrication; size/depth/invalid UTF-8 behavior bounded.", + "requirements": [ + "HYF-RUN-002", + "HYF-CORE-005" + ], + "introduces_tasks": [], + "commit_message": "stdio: recover from malformed framed requests", + "expected_result": "Return existing-compatible safe errors for recoverable invalid frames and continue; apply explicit fail/close policy for oversized/unrecoverable framing. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-transport" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S102" + ] + }, + { + "id": "S104", + "title": "Prepare gated descriptors for new operations", + "phase": "G — public process and wire integration", + "purpose": "Prepare capability metadata without advertising handlers before their wire paths exist.", + "scope": "Add descriptors for internally implemented pipelines but keep each public operation unadvertised/unavailable until its real wire handler and process tests land in S105, S106 or S107. Preserve legacy discovery behavior and policy/configuration distinctions.", + "files": [ + "src/hyf_core/capabilities/registry.mojo", + "discovery fixtures" + ], + "tests": "Internal supported metadata is represented without public callable advertisement; attempts to invoke unbound operations remain safely unavailable; old discovery fixtures pass.", + "requirements": [ + "HYF-BUY-006", + "HYF-RUN-006", + "HYF-CORE-005" + ], + "introduces_tasks": [], + "commit_message": "stdio: prepare gated descriptors for new operations", + "expected_result": "Descriptors cannot advertise a callable operation before a real handler is registered. Existing public behavior remains green.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-transport" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S103" + ] + }, + { + "id": "S105", + "title": "Expose farm_update interpretation over stdio", + "phase": "G — public process and wire integration", + "purpose": "Connect approved public surface to the real pipeline.", + "scope": "Bind selected farm input/output schema to domain/application types and dispatcher; runtime budgets/identity checks precede inference. Register and advertise this operation only in the same tested change that installs its real handler, subject to enablement policy.", + "files": [ + "src/hyf_stdio dispatch/codec modules", + "farm wire fixtures" + ], + "tests": "Real hyfd plus strict local Jev server produces evidence-backed farm result; invalid input, review and failure cases pass with no mutation side effects.", + "requirements": [ + "HYF-BUY-006", + "HYF-FARM-009", + "HYF-TEST-005" + ], + "introduces_tasks": [], + "commit_message": "stdio: expose farm_update interpretation over stdio", + "expected_result": "Bind selected farm input/output schema to domain/application types and dispatcher; runtime budgets/identity checks precede inference. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-transport" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S104" + ] + }, + { + "id": "S106", + "title": "Expose buyer_request interpretation over stdio", + "phase": "G — public process and wire integration", + "purpose": "Deliver typed demand creation without order authority.", + "scope": "Add actual wire codec/dispatch for buyer interpretation and material clarification outputs; preserve metadata/error conventions. Register and advertise this operation only in the same tested change that installs its real handler, subject to enablement policy.", + "files": [ + "src/hyf_stdio dispatch/codec modules", + "buyer interpretation wire fixtures" + ], + "tests": "Multi-line/negation/unknown/failed-provider cases traverse built hyfd and production adapter; no hidden session state required.", + "requirements": [ + "HYF-BUY-001", + "HYF-BUY-002", + "HYF-BUY-005", + "HYF-TEST-005" + ], + "introduces_tasks": [], + "commit_message": "stdio: expose buyer_request interpretation over stdio", + "expected_result": "Add actual wire codec/dispatch for buyer interpretation and material clarification outputs; preserve metadata/error conventions. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-transport" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S105" + ] + }, + { + "id": "S107", + "title": "Expose buyer_request matching over stdio", + "phase": "G — public process and wire integration", + "purpose": "Return typed feasible plans through the canonical process.", + "scope": "Bind typed needs, snapshots/coverage and match outputs to the actual wire contract; no rewritten query parsing or implicit retrieval added. Register and advertise this operation only in the same tested change that installs its real handler, subject to enablement policy.", + "files": [ + "src/hyf_stdio dispatch/codec modules", + "buyer match wire fixtures" + ], + "tests": "Built daemon verifies fail/unknown/pass, compatible-lot plans, stale/duplicate inputs, coverage and degraded ranking results.", + "requirements": [ + "HYF-BUY-004", + "HYF-MATCH-003", + "HYF-MATCH-004", + "HYF-TEST-005" + ], + "introduces_tasks": [], + "commit_message": "stdio: expose buyer_request matching over stdio", + "expected_result": "Bind typed needs, snapshots/coverage and match outputs to the actual wire contract; no rewritten query parsing or implicit retrieval added. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-transport" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S106" + ] + }, + { + "id": "S108", + "title": "Exercise new-operation configuration matrix", + "phase": "G — public process and wire integration", + "purpose": "Prove public policy behaves correctly under all supported flags.", + "scope": "Add full disabled/unconfigured/denied/ready/provider-down matrices for each new operation plus retained max_local/legacy modes.", + "files": [ + "tests/test_stdio_contract.mojo", + "runtime/discovery fixtures" + ], + "tests": "No flag combination bypasses permissions, revives unimplemented capability or silently confirms stock via fallback.", + "requirements": [ + "HYF-RUN-006", + "HYF-JEV-008", + "HYF-CORE-005" + ], + "introduces_tasks": [], + "commit_message": "stdio: exercise new-operation configuration matrix", + "expected_result": "Add full disabled/unconfigured/denied/ready/provider-down matrices for each new operation plus retained max_local/legacy modes. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-transport" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S107" + ] + }, + { + "id": "S109", + "title": "Preserve and extend wire compatibility corpus", + "phase": "G — public process and wire integration", + "purpose": "Share only actual stable public contracts.", + "scope": "Add finalized new wire scenarios under discovered canonical sync workflow while preserving old scenarios; update local mirror/checksum metadata without requiring parent checkout.", + "files": [ + "tests/fixtures/v1/", + "authorized parent canonical family", + "sync tooling docs" + ], + "tests": "Old local fixtures pass; standalone tests work parent-absent; authorized parent verification records real sync or explicit external blocker.", + "requirements": [ + "HYF-CORE-005", + "HYF-TEST-002", + "HYF-REL-004" + ], + "introduces_tasks": [], + "commit_message": "stdio: preserve and extend wire compatibility corpus", + "expected_result": "Add finalized new wire scenarios under discovered canonical sync workflow while preserving old scenarios; update local mirror/checksum metadata without requiring parent checkout. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-transport" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S108" + ] + }, + { + "id": "S110", + "title": "Verify daemon shutdown and long-session cleanup", + "phase": "G — public process and wire integration", + "purpose": "Ensure persistent sessions do not leak resources.", + "scope": "Handle EOF/errors/host termination with bounded cleanup of provider connections and internal state; update process helpers to own child lifetimes correctly.", + "files": [ + "src/hyf_stdio/server.mojo", + "tests/stdio_process_helper.mojo", + "lifecycle tests" + ], + "tests": "Repeated mixed requests, abrupt pipe closure, provider crash and watchdog termination leave no orphan child/socket/descriptor growth.", + "requirements": [ + "HYF-RUN-007", + "HYF-RUN-001", + "HYF-TEST-007" + ], + "introduces_tasks": [], + "commit_message": "stdio: verify daemon shutdown and long-session cleanup", + "expected_result": "Handle EOF/errors/host termination with bounded cleanup of provider connections and internal state; update process helpers to own child lifetimes correctly. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-runtime-contract", + "pixi run test-jev-transport" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S109" + ] + }, + { + "id": "S111", + "title": "Add the farm review-confirmation journey", + "phase": "H — journey and adversarial acceptance", + "purpose": "Verify handoff semantics across multiple calls.", + "scope": "Create a test application simulation for source→interpret→clarify→review→authorized-command proposal, using real Hyf operations and no production inventory storage.", + "files": [ + "tests/journeys/farm_update.mojo", + "journey fixtures", + "pixi.toml" + ], + "tests": "Original evidence preserved, material answer resolves intended field and Hyf performs no write; introduce test-journeys into offline default suite.", + "requirements": [ + "HYF-FARM-005", + "HYF-FARM-006", + "HYF-FARM-009", + "HYF-CORE-002" + ], + "introduces_tasks": [ + "test-journeys" + ], + "commit_message": "test: add the farm review-confirmation journey", + "expected_result": "Create a test application simulation for source→interpret→clarify→review→authorized-command proposal, using real Hyf operations and no production inventory storage. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application", + "pixi run test-journeys" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S110" + ] + }, + { + "id": "S112", + "title": "Add the buyer interpretation-match journey", + "phase": "H — journey and adversarial acceptance", + "purpose": "Verify typed intent survives end-to-end composition.", + "scope": "Run raw buyer request through interpretation, explicit material review and matching against synthetic authorized snapshots; use real domain/application/stdio adapters.", + "files": [ + "tests/journeys/buyer_request.mojo", + "complete journey fixtures" + ], + "tests": "Negation/quantity/grade/date persist across operation boundaries; eligible/conditional labels and no reservation claim verified.", + "requirements": [ + "HYF-BUY-004", + "HYF-BUY-005", + "HYF-MATCH-007" + ], + "introduces_tasks": [], + "commit_message": "test: add the buyer interpretation-match journey", + "expected_result": "Run raw buyer request through interpretation, explicit material review and matching against synthetic authorized snapshots; use real domain/application/stdio adapters. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application", + "pixi run test-journeys" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S111" + ] + }, + { + "id": "S113", + "title": "Simulate duplicate and stale authority responses", + "phase": "H — journey and adversarial acceptance", + "purpose": "Make external handoff expectations testable locally.", + "scope": "Add explicit test-only authority behavior for duplicate accepted source revisions, stale expected versions and changed stock; do not represent it as production persistence.", + "files": [ + "tests/journeys/authority_contract.mojo", + "integration contract notes" + ], + "tests": "Duplicate applies once in simulation, stale update conflicts and stock change requires revalidation; report real-service gate still open.", + "requirements": [ + "HYF-DATA-010", + "HYF-MATCH-011", + "HYF-REL-004" + ], + "introduces_tasks": [], + "commit_message": "test: simulate duplicate and stale authority responses", + "expected_result": "Add explicit test-only authority behavior for duplicate accepted source revisions, stale expected versions and changed stock; do not represent it as production persistence. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application", + "pixi run test-journeys" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S112" + ] + }, + { + "id": "S114", + "title": "Add multi-tenant and evidence-disclosure adversaries", + "phase": "H — journey and adversarial acceptance", + "purpose": "Test authorization consistency before and after inference.", + "scope": "Exercise cross-scope sources/snapshots, ID collisions, provider-state minimization and output evidence filtering under trusted host context.", + "files": [ + "tests/security/scope.mojo", + "security fixtures" + ], + "tests": "Forbidden records never reach provider/output; consumer string cannot grant authority; no private text leaks via reason explanations.", + "requirements": [ + "HYF-SEC-001", + "HYF-SEC-004", + "HYF-MATCH-003" + ], + "introduces_tasks": [], + "commit_message": "test: add multi-tenant and evidence-disclosure adversaries", + "expected_result": "Exercise cross-scope sources/snapshots, ID collisions, provider-state minimization and output evidence filtering under trusted host context. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application", + "pixi run test-journeys" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S113" + ] + }, + { + "id": "S115", + "title": "Add source-instruction injection regressions", + "phase": "H — journey and adversarial acceptance", + "purpose": "Prove source text cannot select actions or infrastructure.", + "scope": "Submit messages containing fake system instructions, endpoints and role claims through both interpretation surfaces and matching context.", + "files": [ + "tests/security/source_data.mojo", + "adversarial source fixtures" + ], + "tests": "No arbitrary network/tool calls, endpoint/model changes, privilege elevation or inventory mutations; original text remains evidence only.", + "requirements": [ + "HYF-SEC-002", + "HYF-DATA-001" + ], + "introduces_tasks": [], + "commit_message": "test: add source-instruction injection regressions", + "expected_result": "Submit messages containing fake system instructions, endpoints and role claims through both interpretation surfaces and matching context. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application", + "pixi run test-journeys" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S114" + ] + }, + { + "id": "S116", + "title": "Verify secret and telemetry redaction", + "phase": "H — journey and adversarial acceptance", + "purpose": "Make diagnostics safe under success and failure.", + "scope": "Add structured redaction and bounded trace/version/error emissions at runtime/provider boundaries; use bounded metric dimensions and no raw payload defaults.", + "files": [ + "src/hyf_runtime/telemetry.mojo", + "redaction tests", + "error fixtures" + ], + "tests": "Synthetic secret markers never appear in stdout/stderr/logs/traces; error diagnostics bounded; no unbounded source IDs as metric labels.", + "requirements": [ + "HYF-RUN-008", + "HYF-SEC-005", + "HYF-SEC-004" + ], + "introduces_tasks": [], + "commit_message": "test: verify secret and telemetry redaction", + "expected_result": "Add structured redaction and bounded trace/version/error emissions at runtime/provider boundaries; use bounded metric dimensions and no raw payload defaults. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application", + "pixi run test-journeys" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S115" + ] + }, + { + "id": "S117", + "title": "Resolve optional cache scope explicitly", + "phase": "H — journey and adversarial acceptance", + "purpose": "Avoid an unneeded persistence subsystem.", + "scope": "Record no-cache decision for v1 unless measured repository evidence justifies a narrow existing cache integration; if present implement bounded tenant/source/context/version keys and invalidation in this scoped change.", + "files": [ + "architecture decision note", + "existing cache module only if present", + "cache or no-cache tests" + ], + "tests": "No-cache path has isolated request state; any actual cache tests cover tenant collisions, revision/model/time changes and stale availability nonreuse.", + "requirements": [ + "HYF-RUN-009", + "HYF-DATA-009", + "HYF-SEC-001" + ], + "introduces_tasks": [], + "commit_message": "test: resolve optional cache scope explicitly", + "expected_result": "Record no-cache decision for v1 unless measured repository evidence justifies a narrow existing cache integration; if present implement bounded tenant/source/context/version keys and invalidation in this scoped change. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application", + "pixi run test-journeys" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S116" + ] + }, + { + "id": "S118", + "title": "Add quantity and eligibility properties", + "phase": "H — journey and adversarial acceptance", + "purpose": "Generalize beyond golden happy paths.", + "scope": "Use bounded seeded generators for exact-unit equivalence, mandatory precedence and uncertainty preservation; save minimal failing counterexamples.", + "files": [ + "tests/properties/quantity_eligibility.mojo", + "regression corpus" + ], + "tests": "Fixed seeds reproduce, near-boundary arithmetic remains correct and deliberately raised semantic scores cannot override failed requirements.", + "requirements": [ + "HYF-MATCH-001", + "HYF-MATCH-002", + "HYF-DATA-003", + "HYF-TEST-009" + ], + "introduces_tasks": [], + "commit_message": "test: add quantity and eligibility properties", + "expected_result": "Use bounded seeded generators for exact-unit equivalence, mandatory precedence and uncertainty preservation; save minimal failing counterexamples. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application", + "pixi run test-journeys" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S117" + ] + }, + { + "id": "S119", + "title": "Add allocation conservation and ordering properties", + "phase": "H — journey and adversarial acceptance", + "purpose": "Find shared-lot and nondeterministic ranking bugs.", + "scope": "Generate small compatible/duplicate/multi-line cases and compare to independent feasibility checks; permute fixed inputs and assert stable declared results.", + "files": [ + "tests/properties/allocation_rank.mojo", + "independent test oracle" + ], + "tests": "Per-plan conservation holds, alternatives distinguished, tie ordering stable and failing seeds become minimized reviewed regressions.", + "requirements": [ + "HYF-MATCH-005", + "HYF-MATCH-009", + "HYF-TEST-008", + "HYF-TEST-009" + ], + "introduces_tasks": [], + "commit_message": "test: add allocation conservation and ordering properties", + "expected_result": "Generate small compatible/duplicate/multi-line cases and compare to independent feasibility checks; permute fixed inputs and assert stable declared results. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application", + "pixi run test-journeys" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S118" + ] + }, + { + "id": "S120", + "title": "Seed representative guard faults", + "phase": "H — journey and adversarial acceptance", + "purpose": "Demonstrate tests detect the failures they claim to prevent.", + "scope": "Temporarily mutate selected guards in a controlled test harness or mutation procedure, verify failing tests and restore production source before commit; record results only.", + "files": [ + "tests fault-seeding harness or documented procedure", + "evidence reports" + ], + "tests": "Unknown-as-pass, inverted quantity compare and bypassed revision check are detected; committed production source is not mutated.", + "requirements": [ + "HYF-TEST-009", + "HYF-TEST-008", + "HYF-REL-002" + ], + "introduces_tasks": [], + "commit_message": "test: seed representative guard faults", + "expected_result": "Temporarily mutate selected guards in a controlled test harness or mutation procedure, verify failing tests and restore production source before commit; record results only. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application", + "pixi run test-journeys" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S119" + ] + }, + { + "id": "S121", + "title": "Fuzz bounded parsers and protocol inputs", + "phase": "H — journey and adversarial acceptance", + "purpose": "Stress malformed boundaries without nondeterministic hangs.", + "scope": "Add reproducible bounded fuzz/property cases for JSON/frame/span/quantity parsing and provider answers using available repo tooling; keep raw bytes distinct from fixture JSON.", + "files": [ + "tests/fuzz or property harness", + "raw regression fixtures" + ], + "tests": "Size/depth/UTF-8/number failures are typed and bounded; watchdogs prove no hang; discovered counterexamples persisted with seed.", + "requirements": [ + "HYF-RUN-002", + "HYF-JEV-004", + "HYF-TEST-009" + ], + "introduces_tasks": [], + "commit_message": "test: fuzz bounded parsers and protocol inputs", + "expected_result": "Add reproducible bounded fuzz/property cases for JSON/frame/span/quantity parsing and provider answers using available repo tooling; keep raw bytes distinct from fixture JSON. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application", + "pixi run test-journeys" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S120" + ] + }, + { + "id": "S122", + "title": "Enforce offline environment isolation", + "phase": "H — journey and adversarial acceptance", + "purpose": "Prevent accidental credentials or live network in default tests.", + "scope": "Sanitize environment and isolate dirs/config/secrets across test runners; deny external networking with supported target mechanism or fail-closed transport plus documented residual limits.", + "files": [ + "tests/support/environment.mojo", + "test runner", + "isolation tests" + ], + "tests": "Set fake developer credentials and external endpoint variables; default runs cannot use them or reach live network; loopback remains functional.", + "requirements": [ + "HYF-TEST-004", + "HYF-TEST-007", + "HYF-SEC-005" + ], + "introduces_tasks": [], + "commit_message": "test: enforce offline environment isolation", + "expected_result": "Sanitize environment and isolate dirs/config/secrets across test runners; deny external networking with supported target mechanism or fail-closed transport plus documented residual limits. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application", + "pixi run test-journeys" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S121" + ] + }, + { + "id": "S123", + "title": "Add single-case and seed replay support", + "phase": "H — journey and adversarial acceptance", + "purpose": "Make failures economical to diagnose locally.", + "scope": "Provide documented repository-owned case selection and seed replay with sanitized failure artifacts; use current test tooling instead of inventing unsupported flags.", + "files": [ + "test runner", + "pixi tasks or documented argv", + "local runbook" + ], + "tests": "Select a known case, reject unknown IDs/seeds appropriately, reproduce saved counterexample and run full suite unchanged.", + "requirements": [ + "HYF-TEST-009", + "HYF-TEST-012", + "HYF-REL-002" + ], + "introduces_tasks": [], + "commit_message": "test: add single-case and seed replay support", + "expected_result": "Provide documented repository-owned case selection and seed replay with sanitized failure artifacts; use current test tooling instead of inventing unsupported flags. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application", + "pixi run test-journeys" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S122" + ] + }, + { + "id": "S124", + "title": "Enforce acceptance activation checkpoints", + "phase": "H — journey and adversarial acceptance", + "purpose": "Prevent planned scenarios disappearing into green totals.", + "scope": "Validate required_from_step bindings against adopted progress and actual registered executable tests; final mode requires every mandatory case with no silent skip or unimplemented projection.", + "files": [ + "fixture runner/manifest", + "requirement checker", + "completion tests" + ], + "tests": "Missing activated test fails; future planned count separate; final check rejects planned/blocked cases as completion even when schema-valid.", + "requirements": [ + "HYF-TEST-011", + "HYF-TEST-003", + "HYF-REL-002" + ], + "introduces_tasks": [], + "commit_message": "test: enforce acceptance activation checkpoints", + "expected_result": "Validate required_from_step bindings against adopted progress and actual registered executable tests; final mode requires every mandatory case with no silent skip or unimplemented projection. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-domain", + "pixi run test-application", + "pixi run test-journeys" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S123" + ] + }, + { + "id": "S125", + "title": "Add bounded process soak testing", + "phase": "I — operational and release verification", + "purpose": "Detect long-session resource leaks separately from fast tests.", + "scope": "Create repeatable local mixed-operation soak with strict loopback provider, captured resource counts and fixed workload limits; do not infer live provider latency.", + "files": [ + "tests/soak", + "pixi.toml", + "resource report format" + ], + "tests": "Run repeated requests, timeout failures and shutdown; memory/descriptors/children remain within approved measured bounds; introduce test-soak.", + "requirements": [ + "HYF-RUN-007", + "HYF-RUN-010", + "HYF-REL-006" + ], + "introduces_tasks": [ + "test-soak" + ], + "commit_message": "ops: add bounded process soak testing", + "expected_result": "Create repeatable local mixed-operation soak with strict loopback provider, captured resource counts and fixed workload limits; do not infer live provider latency. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run test-soak" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S124" + ] + }, + { + "id": "S126", + "title": "Measure candidate and plan resource envelopes", + "phase": "I — operational and release verification", + "purpose": "Set production caps from evidence rather than guesses.", + "scope": "Benchmark bounded candidate indexing, compatibility grouping, plan enumeration and ranking with stated target/toolchain/workload; document limits/truncation behavior and proposed owner-reviewed caps.", + "files": [ + "benchmarks or tests/resource", + "runtime limit docs" + ], + "tests": "Correctness still holds at caps; oversized inputs terminate predictably; reports distinguish algorithmic limits from timing variability.", + "requirements": [ + "HYF-RUN-002", + "HYF-RUN-010", + "HYF-MATCH-004" + ], + "introduces_tasks": [], + "commit_message": "ops: measure candidate and plan resource envelopes", + "expected_result": "Benchmark bounded candidate indexing, compatibility grouping, plan enumeration and ranking with stated target/toolchain/workload; document limits/truncation behavior and proposed owner-reviewed caps. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S125" + ] + }, + { + "id": "S127", + "title": "Add live Jev contract smoke command", + "phase": "I — operational and release verification", + "purpose": "Verify actual account/protocol only when explicitly authorized.", + "scope": "Implement small synthetic opt-in smoke using production request/client/parser and pinned model; no hidden execution from default tests or prerequisite skips.", + "files": [ + "tests/live/jev_smoke", + "pixi.toml", + "provider runbook" + ], + "tests": "Offline tests verify opt-in/credential preconditions; authorized live run records actual result or remains blocked; introduce smoke-jev.", + "requirements": [ + "HYF-JEV-010", + "HYF-JEV-006", + "HYF-REL-005" + ], + "introduces_tasks": [ + "smoke-jev" + ], + "commit_message": "ops: add live Jev contract smoke command", + "expected_result": "Implement small synthetic opt-in smoke using production request/client/parser and pinned model; no hidden execution from default tests or prerequisite skips. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S126" + ] + }, + { + "id": "S128", + "title": "Add raw-input semantic evaluation runner", + "phase": "I — operational and release verification", + "purpose": "Measure real model quality separately from stub correctness.", + "scope": "Create opt-in runner that exercises candidate discovery, actual question building/adapter and composition from reviewed raw cases; emit versioned metrics/report data.", + "files": [ + "evals/hyf_v1_jev/runner", + "pixi.toml", + "evaluation report schema" + ], + "tests": "Offline runner tests use synthetic answers; live output is not invented; include field/claim/withdrawal/eligibility/clarification and cost metrics; introduce eval-jev.", + "requirements": [ + "HYF-JEV-010", + "HYF-TEST-008", + "HYF-REL-005" + ], + "introduces_tasks": [ + "eval-jev" + ], + "commit_message": "ops: add raw-input semantic evaluation runner", + "expected_result": "Create opt-in runner that exercises candidate discovery, actual question building/adapter and composition from reviewed raw cases; emit versioned metrics/report data. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S127" + ] + }, + { + "id": "S129", + "title": "Define evaluation labeling and holdout policy", + "phase": "I — operational and release verification", + "purpose": "Avoid tuning and assessing on the same answers.", + "scope": "Add domain label instructions, ambiguity adjudication, farm/time split and controlled holdout references with data provenance/privacy controls; no private corpus is fabricated.", + "files": [ + "evals/hyf_v1_jev/labeling_policy.md", + "dataset manifest", + "owner gate record" + ], + "tests": "Validate dataset IDs/revisions and split separation; synthetic development examples marked non-production; missing approved corpus remains explicit release blocker.", + "requirements": [ + "HYF-JEV-010", + "HYF-REL-005", + "HYF-SEC-004" + ], + "introduces_tasks": [], + "commit_message": "ops: define evaluation labeling and holdout policy", + "expected_result": "Add domain label instructions, ambiguity adjudication, farm/time split and controlled holdout references with data provenance/privacy controls; no private corpus is fabricated. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S128" + ] + }, + { + "id": "S130", + "title": "Freeze quality and service acceptance gates", + "phase": "I — operational and release verification", + "purpose": "Make release thresholds predeclared and reviewable.", + "scope": "Record owner-approved risk-slice quality, review workload, latency/cost/load and account/security criteria from pilot evidence; without owner data retain unfulfilled gates rather than invent values.", + "files": [ + "release criteria record", + "eval/load reports", + "open-questions status" + ], + "tests": "Validate report completeness and threshold-before-evaluation evidence; do not execute private/live workload without authorization.", + "requirements": [ + "HYF-RUN-010", + "HYF-REL-005", + "HYF-REL-002" + ], + "introduces_tasks": [], + "commit_message": "ops: freeze quality and service acceptance gates", + "expected_result": "Record owner-approved risk-slice quality, review workload, latency/cost/load and account/security criteria from pilot evidence; without owner data retain unfulfilled gates rather than invent values. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S129" + ] + }, + { + "id": "S131", + "title": "Document real authority integration contracts", + "phase": "I — operational and release verification", + "purpose": "Name actual owners instead of relying on simulated guarantees.", + "scope": "Discover authorized source/workflow/inventory/reservation services and map version/idempotency/revalidation handoffs; keep production storage outside Hyf.", + "files": [ + "integration contract docs", + "authorized consumer tests if available" + ], + "tests": "Run real-service duplicate/stale/stock-race integration commands when available; otherwise record owner/environment/blocker precisely without declaring gate passed.", + "requirements": [ + "HYF-CORE-002", + "HYF-MATCH-011", + "HYF-REL-004" + ], + "introduces_tasks": [], + "commit_message": "ops: document real authority integration contracts", + "expected_result": "Discover authorized source/workflow/inventory/reservation services and map version/idempotency/revalidation handoffs; keep production storage outside Hyf. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S130" + ] + }, + { + "id": "S132", + "title": "Verify parent fixture and validation integration", + "phase": "I — operational and release verification", + "purpose": "Respect existing shared authority and orchestration.", + "scope": "Use discovered authorized parent sync/check command for finalized public fixtures; preserve standalone operation and no local .github workflows.", + "files": [ + "parent canonical fixtures and root .act only if authorized", + "local mirror metadata" + ], + "tests": "Record actual parent compatibility result or explicit missing-checkout gate; local offline tests remain independent and green.", + "requirements": [ + "HYF-TEST-002", + "HYF-CORE-006", + "HYF-REL-004" + ], + "introduces_tasks": [], + "commit_message": "ops: verify parent fixture and validation integration", + "expected_result": "Use discovered authorized parent sync/check command for finalized public fixtures; preserve standalone operation and no local . Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S131" + ] + }, + { + "id": "S133", + "title": "Exercise provider disablement and rollback", + "phase": "I — operational and release verification", + "purpose": "Prove operational recovery preserves accepted business state.", + "scope": "Use local scripted failures to exercise operation/provider switches, safe degradation and versioned configuration rollback; distinguish host business review from Hyf rollback.", + "files": [ + "runbooks/provider incident and promotion", + "runtime rollback tests" + ], + "tests": "Provider down and model mismatch trigger expected switch/recovery; no accepted records are deleted; cache invalidation tested only if cache exists.", + "requirements": [ + "HYF-REL-006", + "HYF-JEV-006", + "HYF-JEV-008" + ], + "introduces_tasks": [], + "commit_message": "ops: exercise provider disablement and rollback", + "expected_result": "Use local scripted failures to exercise operation/provider switches, safe degradation and versioned configuration rollback; distinguish host business review from Hyf rollback. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S132" + ] + }, + { + "id": "S134", + "title": "Add consumer examples and truthful command documentation", + "phase": "I — operational and release verification", + "purpose": "Make the shipped surfaces understandable without chat history.", + "scope": "Document actual schemas/tasks/states and complete synthetic farm/buyer examples, privacy caveats, confirmation/revalidation handoffs and unsupported modes.", + "files": [ + "README or docs", + "examples", + "public API docs", + "runbooks" + ], + "tests": "Execute offline examples via built daemon/strict provider; check all documented commands exist and no example implies reservation/global market coverage.", + "requirements": [ + "HYF-BUY-006", + "HYF-MATCH-010", + "HYF-TEST-012", + "HYF-REL-002" + ], + "introduces_tasks": [], + "commit_message": "ops: add consumer examples and truthful command documentation", + "expected_result": "Document actual schemas/tasks/states and complete synthetic farm/buyer examples, privacy caveats, confirmation/revalidation handoffs and unsupported modes. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S133" + ] + }, + { + "id": "S135", + "title": "Aggregate repository-local release validation", + "phase": "I — operational and release verification", + "purpose": "Provide one honest offline quality entry point.", + "scope": "Add validate-local aggregating fixture/traceability, architecture, discovered format/static/build and all required offline suites; preserve default pixi test and separate live/soak tasks.", + "files": [ + "pixi.toml", + "validation wrapper", + "command-contract tests" + ], + "tests": "Forced failing subcheck returns nonzero; no live command hidden in aggregate; missing required test cannot be skipped; introduce validate-local.", + "requirements": [ + "HYF-TEST-012", + "HYF-REL-002", + "HYF-REL-003" + ], + "introduces_tasks": [ + "validate-local" + ], + "commit_message": "ops: aggregate repository-local release validation", + "expected_result": "Add validate-local aggregating fixture/traceability, architecture, discovered format/static/build and all required offline suites; preserve default pixi test and separate live/soak tasks. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run validate-local" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S134" + ] + }, + { + "id": "S136", + "title": "Verify supported targets and feature matrix", + "phase": "I — operational and release verification", + "purpose": "Avoid claiming cross-platform support from one local run.", + "scope": "Run or arrange authorized repo-owned checks on current supported targets with locked tooling and documented feature/config matrices; conditional Cargo only for actual relevant workspaces.", + "files": [ + "target validation reports", + "repo-owned command docs" + ], + "tests": "Record each target/version/flag result or blocker; avoid blind all-features and unsupported tool claims; do not broaden the target matrix without approval.", + "requirements": [ + "HYF-REL-003", + "HYF-RUN-006", + "HYF-TEST-004" + ], + "introduces_tasks": [], + "commit_message": "ops: verify supported targets and feature matrix", + "expected_result": "Run or arrange authorized repo-owned checks on current supported targets with locked tooling and documented feature/config matrices; conditional Cargo only for actual relevant workspaces. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run validate-local" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S135" + ] + }, + { + "id": "S137", + "title": "Audit final requirement and fixture closure", + "phase": "I — operational and release verification", + "purpose": "Confirm every approved local behavior has executable evidence.", + "scope": "Run final activation/traceability check and inspect all remaining gates, fixtures, docs, secrets, compatibility and import boundaries; fix only defects within this final audit scope.", + "files": [ + "requirement registry", + "test manifests", + "implementation ledger", + "final audit report" + ], + "tests": "All mandatory local cases run; no unexplained skipped/obsolete steps; negative assertion tests pass; external gates remain separately classified.", + "requirements": [ + "HYF-TEST-011", + "HYF-CORE-004", + "HYF-REL-001", + "HYF-REL-002" + ], + "introduces_tasks": [], + "commit_message": "ops: audit final requirement and fixture closure", + "expected_result": "Run final activation/traceability check and inspect all remaining gates, fixtures, docs, secrets, compatibility and import boundaries; fix only defects within this final audit scope. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run validate-local" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S136" + ] + }, + { + "id": "S138", + "title": "Publish the implementation readiness report locally", + "phase": "I — operational and release verification", + "purpose": "Finish the handoff without claiming unauthorized production release.", + "scope": "Record final commit range, files/modules delivered, real commands/results, model/account/authority/target gates and rollback readiness; leave clean reviewed source and no unrelated changes. Do not push/publish/deploy.", + "files": [ + "implementation/FINAL_REPORT.md", + "implementation/STATUS.md", + "release checklist" + ], + "tests": "Run validate-local and required applicable suites; inspect git status/diff/history; report local, model and production readiness independently with owners for blockers.", + "requirements": [ + "HYF-REL-001", + "HYF-REL-002", + "HYF-REL-004", + "HYF-REL-005", + "HYF-REL-006" + ], + "introduces_tasks": [], + "commit_message": "ops: publish the implementation readiness report locally", + "expected_result": "Record final commit range, files/modules delivered, real commands/results, model/account/authority/target gates and rollback readiness; leave clean reviewed source and no unrelated changes. Existing supported behavior remains green; this step does not claim completion of later or external gates.", + "verification_commands": [ + "git diff --check", + "pixi run test", + "pixi run test-spec", + "pixi run test-architecture", + "pixi run check-build", + "pixi run validate-local" + ], + "discovery_checks": "Run discovered check-only formatter/static/lint and actual daemon build/type check for touched source. Discover focused-case syntax before use; do not invent commands. Apply current supported configuration/feature checks relevant to this change.", + "conditional_cargo_commands": [ + "cargo check --workspace --locked", + "cargo test --workspace --locked", + "cargo fmt --all -- --check", + "cargo clippy --workspace --all-targets --locked -- -D warnings" + ], + "cargo_condition": "Only in a discovered relevant actual Rust workspace touched by this step; otherwise record N/A (Mojo core), never create a Cargo manifest. Discover workspace/feature matrix and use --manifest-path as needed; no blind --all-features.", + "dependencies": [ + "S137" + ] + } + ] +} diff --git a/tests/test_traceability.mojo b/tests/test_traceability.mojo @@ -0,0 +1,95 @@ +import std.os +from std.collections import List +from std.pathlib import Path, _dir_of_current_file +from std.tempfile import TemporaryDirectory +from std.testing import TestSuite, assert_equal, assert_true + +from fixture_validator import ( + FixtureValidationIssue, + validate_requirement_traceability, +) + + +def _write(path: Path, text: String) raises: + std.os.makedirs(path.__fspath__(), exist_ok=True) + path.write_text(text) + + +def _make_corpus(base: Path, mutation: String) raises: + var manifest = '{"cases":[{"case_id":"T001"}]}' + var steps = '{"steps":[{"id":"S001","dependencies":[]}]}' + var registry = ( + '{"requirements":[{"id":"HYF-TEST-001",' + '"verification_method":"fixture-schema and traceability checks",' + '"implementation_steps":["S001"],"fixture_ids":["T001"]}]}' + ) + if mutation == "duplicate_requirement": + registry = registry.replace( + ']}]}', + ']},{"id":"HYF-TEST-001","verification_method":"x",' + '"implementation_steps":["S001"],"fixture_ids":["T001"]}]}', + ) + elif mutation == "unknown_step": + registry = registry.replace('["S001"]', '["S999"]') + elif mutation == "dangling_fixture": + registry = registry.replace('["T001"]', '["MISSING"]') + elif mutation == "uncovered_requirement": + registry = registry.replace('"implementation_steps":["S001"]', '"implementation_steps":[]') + elif mutation == "missing_verification_method": + registry = registry.replace('"fixture-schema and traceability checks"', '""') + elif mutation == "dangling_dependency": + steps = '{"steps":[{"id":"S001","dependencies":["S404"]}]}' + elif mutation == "duplicate_step": + steps = ( + '{"steps":[{"id":"S001","dependencies":[]},' + '{"id":"S001","dependencies":[]}]}' + ) + _write(base / "manifest.json", manifest) + _write(base / "steps.json", steps) + _write(base / "registry.json", registry) + + +def _validate(base: Path) raises -> List[FixtureValidationIssue]: + return validate_requirement_traceability( + (base / "registry.json").__fspath__(), + (base / "manifest.json").__fspath__(), + (base / "steps.json").__fspath__(), + ) + + +def test_requirement_traceability_accepts_registry_and_rejects_dangling() raises: + var root = _dir_of_current_file() + assert_equal( + len( + validate_requirement_traceability( + (root / "requirements" / "hyf_v1_jev.requirements.json") + .__fspath__(), + (root / "fixtures" / "hyf_v1_jev" / "manifest.json") + .__fspath__(), + (root / "requirements" / "hyf_v1_jev.steps.json") + .__fspath__(), + ) + ), + 0, + ) + + var mutations = List[String]() + mutations.append("duplicate_requirement") + mutations.append("unknown_step") + mutations.append("dangling_fixture") + mutations.append("uncovered_requirement") + mutations.append("missing_verification_method") + mutations.append("dangling_dependency") + mutations.append("duplicate_step") + for mutation in mutations: + with TemporaryDirectory() as temp_dir: + var base = Path(temp_dir) + _make_corpus(base, mutation) + assert_true( + len(_validate(base)) > 0, + "traceability accepted corruption: " + mutation, + ) + + +def main() raises: + TestSuite.discover_tests[__functions_in_module()]().run()