Skip to content

P2: Prove every claimed Python path from a clean packed install #272

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

Extend installed-artifact evidence from partial scan/check coverage to every Python command path the matrix may claim.

Dependency contract

Required behavior

  1. Pack/install only public Opcore contents into clean temporary projects with source-checkout/private-path/current-tool fallbacks excluded.
  2. Exercise scan, status, measure, syntax/type/import/dead-code/Ruff/pytest checks, exact overlay pre-write, semantic inspect routes, semantic edit preview/apply/rollback, setup dry-run/apply/uninstall, ASP/provider metadata where claimed, and deterministic machine JSON.
  3. Record command, exit/status, capability cell, tool/interpreter/config/service provenance, artifacts/checksums, source/temp cleanliness, network/install policy, and expected unsupported/degraded outcomes.
  4. Contract-bind receipt ids to exact canonical commands and fail missing, duplicate, placeholder, fallback, stale, or advertised-but-unexercised rows.
  5. Maintainer/subagent-owned. Do not launch Zeroshot unless the user explicitly re-delegates this slice after its JIT review.

Acceptance criteria

  • Clean/findings/invalid config/tool unavailable/timeout-crash/no tests/stale-unsupported overlay and managed semantic server present/absent are covered from packed contents.
  • The receipt proves no undeclared network/install, source mutation, sibling checkout, local wrapper, or PATH-discovered private fallback.
  • Receipt generation is reproducible and package/native/release churn is restored or intentionally checksummed.

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

  • publishing packages
  • claim wording changes
  • reusing source-checkout proof as installed proof
  • inventing Windows native support

Verification

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

  • npm run build
  • npm run pack:check
  • npm run cutover:check
  • node --test tests/cutover*.test.mjs tests/installed-bins.test.mjs
  • 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