Repository navigation
Description
Goal
Remove obsolete Base-local lib/python source-root entries from Python test, lint, security-scan, and CI configuration while preserving the real standalone base-cli/lib/python provider path.
Background
Base-owned Python packages live under cli/python; the documentation branch for #2628 inventories all 18 tracked packages and states there is no Base-local lib/python source tree. The current lib/python entries in pytest/Pylint configuration, CI workflows, and contract tests are historical no-op search paths. The external base-cli/lib/python source root remains required for provider-source validation and must not be removed.
Scope
- Confirm repository-local Python source and test roots, then remove only obsolete Base-local
lib/pythonentries from pytest, Pylint, Bandit, compileall, and related workflow configuration where present. - Update contract tests that pin the obsolete entries and preserve assertions for the external
base-cli/lib/pythonprovider path. - Update Python testing, supply-chain, technical-overview, and Copilot setup guidance to match the resulting commands and source roots. Also update active contributor and agent workflow guidance in
CONTRIBUTING.md,skills.md, and.ai-context/WORKFLOWS.mdwhere they include the obsolete Base-local path. - Keep Base-owned Python modules under
cli/python; do not move or restructure packages as part of this cleanup.
Acceptance Criteria
- No Base-owned Python package or helper source is tracked under repository-local
lib/python/. - Test, lint, scan, and compile commands no longer pass the absent Base-local path.
- The standalone
base-cli/lib/pythonprovider path continues to work in pinned and moving-source CI lanes. - Contract tests cover the retained source roots and relevant workflow commands.
- Documentation and AI setup guidance describe the actual commands and distinguish Base paths from the external provider path.
Validation
- Run focused pytest coverage for contract hardening and GitHub workflow contracts.
- Run the repository's Python test and Pylint CI lanes plus security scanners after the configuration changes.
- Run documentation-link validation and
git diff --check.
Non-Goals
- Do not change or remove the standalone
base-cli/lib/pythonprovider. - Do not migrate Base packages or alter runtime behavior.
- Do not remove unrelated
lib/shell, Bash, or data assets.
Project Fields
- Status: Backlog
- Priority: P2
- Size: M
- Area: CI
- Initiative: Contract Hardening
Agent Assignment
Assignee: codeforester. Start after the #2628 ownership documentation lands on main (currently tracked by PR #2629), or after the same source-root policy is independently confirmed on the base branch.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity
codeforester commentedon Nov 5, 2026
Verified the technical premise and gating before this is picked up:
1. Dependency not yet satisfied. This issue is gated on "#2628 merged or the same source-root policy confirmed on base." As of now, #2628 is still open and its implementing PR #2629 is also still open (unmerged). #2629 is the one that actually removes the "shared Python libraries live under
lib/python" guidance from STANDARDS.md/CONTRIBUTING.md — until it merges, STANDARDS.md still documentslib/python/<package>/as the sanctioned location for cross-CLI Python helpers, which would contradict this cleanup. Confirmed via the PR's file list + diff that #2629 does reconcile this. Recommend not starting until #2629 is actually merged (not just reviewed/approved).2. Scope list of docs is incomplete. The issue names "Python testing, supply-chain, technical-overview, and Copilot setup guidance" (matches
docs/testing.md,docs/ci-supply-chain-policy.md,docs/technical-overview.md,.github/copilot-instructions.md— all verified to contain the obsoletelib/pythonreferences). But three other files carry the identical obsolete:lib/python:segment in their examplePYTHONPATH/BASE_CLI_SOURCE_DIRcommands and aren't listed:CONTRIBUTING.md(lines ~84-85, 97)skills.md(lines ~146-152).ai-context/WORKFLOWS.md(lines ~78-91)Worth adding these three to scope so contributors/AI agents copy-pasting setup commands from them don't get a stale search path.
Everything else checks out: the "no Base-local
lib/pythonsource tree exists today" premise is correct (confirmed, directory doesn't exist), and the externalbase-cli/lib/pythonprovider references are correctly out of scope.