# Contributor handoff — python-poetry/poetry

> Canonical page: https://codevetter.com/unpack/poetry/agent-handoff

# Contributor handoff — python-poetry/poetry

Scanned commit d4fd21e4711ae948f04e18a1736d9ee85b590e87 (2026-09-27). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Read the manifest, application, factory, and task-specific command before following changes into resolution or installation. Preserve distinctions among project roots, working directories, Poetry's runtime environment, and the target project's environment. Tests and CI were inspected, not executed; this brief provides bounded evidence rather than a passing baseline. For future authorized implementation work, select targeted tests and typing/style checks, with particular care around compatibility and external state.
- Start with pyproject.toml, Application's command loader/event setup, and Factory.create_poetry to locate runtime dependencies, dispatch conventions, and project assembly before editing a command. — [pyproject.toml#L1-L32](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/pyproject.toml#L1-L32) [src/poetry/console/application.py#L124-L143](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/console/application.py#L124-L143) [src/poetry/factory.py#L66-L147](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/factory.py#L66-L147)
- Preserve repository style: Ruff requires absolute imports, single-line imports, and future annotations; mypy checks src and tests in strict namespace-package mode. — [pyproject.toml#L139-L166](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/pyproject.toml#L139-L166)
- For command installation behavior, first inspect/run the relevant tests/console/commands test module in an authorized implementation task; dependency execution failures also need tests/installation coverage rather than only patched command tests. (inferred) — [tests/console/commands/test_install.py#L399-L423](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/tests/console/commands/test_install.py#L399-L423) [tests/installation/test_executor.py#L1966-L1994](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/tests/installation/test_executor.py#L1966-L1994) [docs/contributing.md#L150-L169](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/docs/contributing.md#L150-L169)
- Tests and CI were inspected, not executed in this investigation. Read tests/conftest.py before interpreting future results: defaults exclude integration tests and isolate user configuration, environment variables, and Git operations. — [tests/conftest.py#L99-L116](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/tests/conftest.py#L99-L116) [tests/conftest.py#L313-L383](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/tests/conftest.py#L313-L383) [.github/workflows/.tests-matrix.yaml#L55-L75](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/.github/workflows/.tests-matrix.yaml#L55-L75)
- Lock changes must retain format compatibility, the pre-2.3 dependency-group hash fallback, and line endings; existing tests assert avoiding version-comment-only rewrites and retaining EOL style. — [src/poetry/packages/locker.py#L55-L70](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/packages/locker.py#L55-L70) [src/poetry/packages/locker.py#L95-L131](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/packages/locker.py#L95-L131) [tests/packages/test_locker.py#L1830-L1874](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/tests/packages/test_locker.py#L1830-L1874)
- Keep success boundaries explicit: dependency operations precede updated-lock persistence, add writes TOML afterward, and install performs root editable building afterward; a root-build error can therefore follow successful dependency work. — [src/poetry/installation/installer.py#L375-L380](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/installation/installer.py#L375-L380) [src/poetry/console/commands/add.py#L410-L415](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/console/commands/add.py#L410-L415) [src/poetry/console/commands/install.py#L174-L221](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/console/commands/install.py#L174-L221)
- Do not confuse project source/config changes with self-update sources: self commands operate on Poetry's runtime files, and documented self update uses sources from its own configuration-directory project. — [docs/cli.md#L958-L969](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/docs/cli.md#L958-L969) [docs/cli.md#L1120-L1126](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/docs/cli.md#L1120-L1126) [src/poetry/installation/installer.py#L384-L390](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/installation/installer.py#L384-L390)
- Plugin internals have no stable public API; contributor guidance requires changed-behavior tests, applicable documentation, mypy, and pre-commit checks, whose configuration includes Ruff and workflow linting. — [docs/plugins.md#L284-L296](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/docs/plugins.md#L284-L296) [docs/contributing.md#L189-L196](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/docs/contributing.md#L189-L196) [.pre-commit-config.yaml#L30-L39](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/.pre-commit-config.yaml#L30-L39)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
