Skip to content

P2: Add native OS, Python, and toolchain matrix evidence #273

Description

@tomdps

Parent

Tracking parent #251; epic #243. This is one vertical delivery slice. Do not close or bypass the parent tracker from this child.

Goal

Exercise declared Python capabilities on real macOS arm64, Linux x64, and Windows x64 runners and keep unsupported cells explicit.

Dependency contract

Required behavior

  1. Define declared Python floor/current versions, architectures, tool versions, project layouts, manager/config variants, managed semantic service present/absent, source checkout, and packed install matrix cells without an unbounded Cartesian explosion.
  2. Run native path, executable discovery, quoting, process-tree timeout/cancellation/cleanup, encoding/newline, symlink/reparse-point, cache/temp, and offline/read-only behaviors on each OS.
  3. Windows jobs must use native Windows execution, not POSIX simulation. Existing graph-core target policy stays unchanged unless a separate architecture/release decision and native-artifact prerequisite explicitly expands it; unsupported Windows graph-dependent cells must pass only as typed unsupported/degraded evidence.
  4. Upload machine matrix artifacts and command receipts from each job and fail missing/stale/contradictory cells.
  5. Maintainer/subagent-owned. Do not launch Zeroshot unless the user explicitly re-delegates this slice after its JIT review.

Acceptance criteria

  • macOS arm64, Linux x64, and Windows x64 jobs exercise the declared matrix with supported Python versions and configured/missing tools.
  • No-Python, checker/Ruff/pytest/service present/absent, timeout/crash, root/nested/src/flat/namespace/stub, and packed-install rows are represented or explicitly justified as unsupported.
  • Process cleanup leaves no child servers/tests and artifacts identify exact runner/tool versions.

Observable outcomes

  • Clean success carries positive execution/provenance evidence; zero diagnostics alone is never proof.
  • Findings and every unavailable/invalid/timeout/crash/resource/stale/unsupported state are machine-readable and fail or degrade exactly as the capability contract says.
  • No implicit fallback, partial result, or skipped execution is reported as a pass.
  • Target source, configuration, lockfiles, environments, and caches remain unchanged except where this issue explicitly owns a validation-gated atomic edit; every temporary resource/process is cleaned.

Non-goals

  • silently expanding graph native targets
  • emulated-only Windows proof
  • rounding unsupported cells to readiness
  • publishing

Verification

Run focused behavior first, then the configured repository proof only after the acceptance matrix works:

  • npm run build
  • npm run lint
  • npm run pack:check
  • all new CI matrix jobs and uploaded artifact validators
  • Attach exact real-tool/artifact versions, argv/config/cwd/source, normalized result examples, before/after cleanliness evidence, and packed-install proof where the slice changes public package behavior.

Execution rule

Implement only after a just-in-time review against current dev. Keep exactly one implementation run active. PR base is dev; require green checks, clean scoped diff, merged PR, closed child, parent checklist update, focused reproductions, and opcore-ci proof before starting the next child. Do not claim Python readiness/parity, ASP authority, old-tool replacement, security/SAST, all-stack support, automatic fixes, or a blended score.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestrelease-blockerBlocks the 0.1.0-alpha.0 release

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions