Problem
pdd reconcile --module <name> --strict --json can ignore an explicit dev-unit test mapping in a nested project .pddrc and instead infer a different nonexistent test path. The unit is then reported as missing_artifacts: test, preventing prompt/code/test fingerprint reconciliation even though the configured test exists.
Reproduction
- In a nested PDD project, configure a dev unit whose aliases include the prompt/code/module name and whose explicit artifacts map:
- prompt:
prompts/src/workers/runtime/failure_classification_Python.prompt
- code:
src/workers/runtime/failure_classification.py
- test:
tests/test_failure_classification.py
- example:
examples/failure_classification_example.py
- Confirm the configured test file exists.
- Run
pdd reconcile --module failure_classification --strict --json from the nested project root.
- Observe that the JSON resolves test to
tests/pdd_executor/test_failure_classification.py and fails with missing fingerprinted artifacts: test, rather than using tests/test_failure_classification.py from .pddrc.
Expected behavior
Explicit artifact mappings must take precedence over inferred conventional paths for reconcile/sync/baseline. The JSON result should report the configured test and reconcile the same dev unit selected by its aliases.
Actual behavior
Module selection recognizes the configured unit name, but artifact resolution substitutes an inferred test path from the code namespace. This makes the configuration internally inconsistent and blocks strict reconciliation.
Proposed solution
Centralize dev-unit resolution so module alias selection and artifact path selection return one resolved configured unit. Only infer a conventional test when the selected unit has no explicit test artifact. Add a nested-project regression with an explicit non-conventional test path; assert sync, reconcile, and baseline all resolve the identical prompt/code/test/example set and that JSON reports the configured test path.
Problem
pdd reconcile --module <name> --strict --jsoncan ignore an explicit dev-unit test mapping in a nested project.pddrcand instead infer a different nonexistent test path. The unit is then reported asmissing_artifacts: test, preventing prompt/code/test fingerprint reconciliation even though the configured test exists.Reproduction
prompts/src/workers/runtime/failure_classification_Python.promptsrc/workers/runtime/failure_classification.pytests/test_failure_classification.pyexamples/failure_classification_example.pypdd reconcile --module failure_classification --strict --jsonfrom the nested project root.tests/pdd_executor/test_failure_classification.pyand fails withmissing fingerprinted artifacts: test, rather than usingtests/test_failure_classification.pyfrom.pddrc.Expected behavior
Explicit artifact mappings must take precedence over inferred conventional paths for reconcile/sync/baseline. The JSON result should report the configured test and reconcile the same dev unit selected by its aliases.
Actual behavior
Module selection recognizes the configured unit name, but artifact resolution substitutes an inferred test path from the code namespace. This makes the configuration internally inconsistent and blocks strict reconciliation.
Proposed solution
Centralize dev-unit resolution so module alias selection and artifact path selection return one resolved configured unit. Only infer a conventional test when the selected unit has no explicit test artifact. Add a nested-project regression with an explicit non-conventional test path; assert
sync,reconcile, andbaselineall resolve the identical prompt/code/test/example set and that JSON reports the configured test path.