Skip to content

pv bindings resolver: follow OUT_DIR includes mapped to a checked-in file (arch_requirements fallback) #5008

Closed as not planned

Description

@noahgift

Parent: #4470 (binding allowlist to 0 entries).

Two rows in contracts/realizar/binding.yaml stay allowlisted because the bindings resolver cannot reach their code:

  • architecture-requirements-v1 role_mapping -> realizar::arch_requirements_fallback::WeightRole::field_name
  • architecture-requirements-v1 constraint_matrix_exhaustiveness -> realizar::arch_requirements_fallback::required_roles

crates/aprender-serve/src/arch_requirements.rs pulls its items in with include!(concat!(env!("OUT_DIR"), "/arch_requirements_generated.rs")). crates/aprender-serve/build.rs writes that file either from the contract YAML or as a copy of src/arch_requirements_fallback.rs. The resolver in crates/aprender-contracts/src/ontology/extract/code.rs follows mod and plain include! only, so neither symbol resolves under any module path.

Proposal: teach the resolver to follow an OUT_DIR include when the build script maps it to a checked-in source file (here, the fallback), then rebind both rows to realizar::arch_requirements and remove their allowlist entries.

This changes what the bindings gate accepts, so the change needs a review from someone other than its author, bound to its final commit, plus a case table of includes that must and must not resolve.

Done when both rows resolve, the 2 allowlist entries are removed, and pv lint contracts/ --gate bindings exits 0.

Activity

  1. noahgift commented on Oct 14, 2026

    @noahgift
    ContributorAuthor

    Folded into #5308 as a checklist row (TRIAGE-100, 2026-10-14): the open-ticket cap is 100, so this ticket is now tracked on that master and closed as not planned. Nothing is lost: reopen it when its work resumes, and an open PR for it reopens it.

    Agent: aprender-clerk

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions