Skip to content

test: harden SVG geometry contract follow-up after #8373 #8449

Description

@ll7

Archetype Metadata

archetype: test
evidence_tier: smoke
linked_policy:
  - docs/context/issue_691_benchmark_fallback_policy.md
  - docs/context/artifact_evidence_vocabulary.md

Goal / Problem

PR #8373 implemented the explicit legacy/corrected SVG geometry contract and is now merged. Its
remaining evidence needs a narrow follow-up: regression coverage for the complete transform grammar,
real-map route propagation, scenario/cache separation, precise compatibility wording, and a clean
repository readiness run before the contract is admitted as merge-ready evidence.

The original parent issue #8314 is closed by #8373, so this issue tracks only the residual validation
and claim-boundary work rather than reopening or reinterpreting the parent result.

Skipped or failing test evidence

Test paths:

  • tests/nav/test_svg_transform_contract.py
  • tests/training/test_scenario_loader.py
  • scripts/dev/pr_ready_check.sh

Current evidence:

  • The focused navigation/scenario/map suite passes (144 passed) on the follow-up branch.
  • The exact-head final readiness run reached 3,082 passing tests, then hit three unrelated
    subprocess/collection timeout failures under parallel load; each failed test passed in isolation.
  • The optional readiness lane was not reached, so the full readiness result is incomplete.

Why this is debt: the contract is safety- and comparability-sensitive, and a closed parent issue
cannot be used by the publication guard as the live tracking object for this residual work.

Intended behavior

The repository should have executable proof that:

  • valid SVG translation numbers and separators are accepted while malformed or unsupported input is
    rejected without partial numeric interpretation;
  • corrected-mode path, rectangle, and circle translations are applied consistently;
  • real authored routes and scenario/cache loads preserve the selected geometry contract;
  • documentation claims historical compatibility and downstream pooling limits accurately; and
  • a clean final readiness run exists before the follow-up is marked ready for merge.

Scope

In scope:

  • retain and review the focused parser, route, scenario, cache, and non-SVG contract regressions;
  • keep legacy as the default and corrected geometry explicitly labeled;
  • complete the canonical core and optional readiness lanes under a resource-appropriate clean run;
  • obtain independent domain-aware review of SVG semantics and historical replay compatibility.

Non-goals:

  • no benchmark campaign, planner comparison, safety conclusion, ranking change, or paper claim;
  • no replacement, deletion, or reinterpretation of frozen legacy artifacts;
  • no generic aggregation redesign beyond recording the contract and requiring an explicit downstream
    compatibility decision.

Inputs

  • Current base: main after merged PR fix(nav): apply ancestor translate transforms with legacy contract (#8314) #8373.
  • Implementation and tests: robot_sf/nav/svg_map_parser.py, robot_sf/nav/map_config.py,
    robot_sf/training/scenario_loader.py, tests/nav/test_svg_transform_contract.py, and
    tests/training/test_scenario_loader.py.
  • Documentation surfaces: docs/context/svg_geometry_contract.md, docs/context/INDEX.md, and
    docs/context/README.md.
  • Required policy surfaces: docs/context/issue_691_benchmark_fallback_policy.md and
    docs/context/artifact_evidence_vocabulary.md.

Acceptance criteria

  • Focused parser, route, scenario, cache, and map tests pass.
  • The valid and malformed transform edge cases remain covered.
  • Legacy/corrected wording does not claim byte-identical dataclass output or automatic anti-pooling.
  • A clean canonical readiness result covers both changed-file lanes, or the blocker is recorded
    with a reproducible reason and the issue remains open.
  • Independent domain-aware approval is recorded before merge or evidence use.
  • No benchmark or frozen-artifact claim is promoted from this work.

Verification

uv run pytest tests/nav/test_svg_transform_contract.py \
  tests/training/test_scenario_loader.py \
  tests/test_svg_classic_maps_format.py \
  tests/maps/test_route_clearance_maps.py -q
uv run ruff check robot_sf/nav/svg_map_parser.py robot_sf/nav/map_config.py \
  robot_sf/training/scenario_loader.py tests/nav/test_svg_transform_contract.py \
  tests/training/test_scenario_loader.py
uv run ruff format --check robot_sf/nav/svg_map_parser.py robot_sf/nav/map_config.py \
  robot_sf/training/scenario_loader.py tests/nav/test_svg_transform_contract.py \
  tests/training/test_scenario_loader.py
BASE_REF=origin/main PR_READY_MODE=final \
  PR_READY_PR_BODY_FILE=/absolute/path/to/pr-body.md scripts/dev/pr_ready_check.sh

Artifact policy

Evidence category: diagnostic implementation smoke only.

output/ remains local and ignored. Readiness receipts and generated test outputs are not durable
benchmark evidence and must not be committed or promoted. No dataset, checkpoint, campaign result,
or frozen artifact is changed by this follow-up.

Estimate metadata

  • Effort: 1–2 hours for a clean readiness rerun and review handoff.
  • Complexity: low implementation complexity; medium workflow/compatibility sensitivity.
  • Risk: parallel local resource contention and overclaiming compatibility semantics.
  • Uncertainty: approximately 0.75 confidence that isolated failures are environment/load-related;
    a repeatable failure in a clean constrained run would keep this issue open for diagnosis.

Project Metadata

  • Priority: normal maintenance follow-up.
  • Effort (h): 2.
  • Reviewed: pending independent domain-aware review.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions