Skip to content

fix(validation): enforce strict authored exit checks - #258

Draft
zoeyrose wants to merge 1 commit into
mainfrom
fix/validation-strict-exits
Draft

fix(validation): enforce strict authored exit checks#258
zoeyrose wants to merge 1 commit into
mainfrom
fix/validation-strict-exits

Conversation

@zoeyrose

@zoeyrose zoeyrose commented Sep 1, 2026

Copy link
Copy Markdown
Member

Summary

Make authored exit validation fail on every statically detected non-enterable
exit. This is an independent follow-up to the merged validator PR #257
and keeps the content check red until the existing findings tracked in content issue #256
are repaired.

Implementation / behavior

  • Remove the migration finding baseline and stale-baseline acceptance path.
  • Require the validator and aggregate content check to fail whenever any
    diagnostic remains, including findings present on the base branch.
  • Include source and target map locations in human-readable diagnostics.
  • Preserve the explicit static boundary for dynamic, scripted,
    permission-gated, player-specific, and otherwise unresolvable exits.

Validation

  • python3 -m unittest tools.tests.test_validate_exits -v — 6 tests passed.
  • python3 tools/validate_exits.py --check — intentionally fails with 30
    findings across 3533 parsed maps and prints their locations.
  • python3 tools/validate.py — intentionally fails after 175 tests and the
    preceding content audits pass, rejecting the same exit findings.
  • git diff --check — passed.

Limitations / follow-up

The check remains static; runtime-only activation rules remain outside its
verdict. This draft is intentionally red until the existing non-enterable exits
are repaired and the strict check reports zero diagnostics.

@zoeyrose zoeyrose moved this to Review in Atrinik work Sep 1, 2026
zoeyrose added a commit that referenced this pull request Sep 2, 2026
## Summary

Repair the current authored map changes that remove the statically
detected
non-enterable exit destinations from the content corpus. This addresses
the
content-repair work tracked by
[content#256](#256)
and is separate from the strict validator gate in
[content#258](#258).

The nine modified maps remove 28 of the 30 findings currently reported
by the
strict scan. The two remaining edge-stair findings depend on restoring
filename-based automatic tiling in
[classic#525](atrinik/classic#525) and are
documented
below rather than hidden by this PR.

## Implementation / behavior

- Mark decorative or intentionally non-tiled stair and ladder records
with
`last_heal 0` so they do not inherit an automatic tiled-exit
destination.
- Remove the stale Hall of DMs exit to the obsolete Tutorial Island
location
  and its associated sign.
- Preserve the authored map layouts while updating modified dates and
the
  canonical ordering of affected metadata records.
- Exclude editor scratch directories and all unrelated working-tree
files.

## Validation

- `python3 tools/validate_exits.py --json` — reports exactly two
remaining
  diagnostics, both the filename-tiling edge cases listed below.
- `python3 tools/validate.py` — content parsing, release parity, and 175
tests
pass; the current `main` baseline then rejects 28 stale baseline
entries,
which is expected to disappear when strict validator PR #258 removes the
  baseline mechanism.
- `git diff --check` — passed.

## Limitations / follow-up

The following two findings intentionally remain until Classic automatic
tiling
is restored and the validator is aligned with that runtime behavior:

- `/shattered_islands/world_1_50:2571`, `(19,23)`, facing south,
resolves to
  `/shattered_islands/world_1_50_-1` at `(19,24)`.
- `/shattered_islands/world_2_47:105`, `(0,15)`, facing west, resolves
to
  `/shattered_islands/world_2_47_-1` at `(-1,15)`.

This draft should converge with
[classic#525](atrinik/classic#525)
and [content#258](#258) before
the strict
content gate is expected to report zero findings.

Refs [content#256](#256)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Review

Development

Successfully merging this pull request may close these issues.

1 participant