Skip to content

fix: reject colliding contract input and output paths - #5

Draft
CompleteDotTech wants to merge 1 commit into
mainfrom
codex/prevent-contract-path-collisions-20261026
Draft

CompleteDotTech wants to merge 1 commit into
mainfrom
codex/prevent-contract-path-collisions-20261026

Conversation

@CompleteDotTech

Copy link
Copy Markdown
Contributor

Change and affected skills

The generator previously returned success when PDF, Markdown, or envelope destinations overwrote each other or a consumed config/template. Add a preflight that rejects aliases before rendering or writing, including symbolic links and hardlinks. Disabled envelope paths are ignored and legitimate repeated generation remains supported. Only the generator and a separate regression test file change.

Evidence

Signed head: 31cacd44c44ef714854597fa055f01e8806c06f9. Reviewed/tested tree: 3bbae1229a435f366dbe2d5dce8d8340a6e7bcfc. GitHub signature valid; fetched tree equals reviewed index. Independent full-diff review found no blocking findings and exercised additional link edge cases.

  • python -m unittest discover -s tests -p 'test_generator_paths.py' -v: 10 passing methods; same suite on baseline produces 22 failures.
  • Package suite: 10 passed; python scripts/validate_package.py: passed.
  • python scripts/validate_quality.py --skip-mermaid: passed; full local rendering remains blocked by the previously observed managed-browser policy, which was not retried.
  • Diff whitespace check passed.

The new generator tests are NOT selected by existing hosted workflows; run the explicit command above. Hosted checks for this head have not been monitored or claimed passing.

Boundaries

Synthetic fixtures only. Existing outputs may still be deliberately replaced when distinct from inputs and other outputs. This is preflight validation, not concurrent-writer/TOCTOU protection or dynamic template/asset provenance tracking. No sending, signatures of agreements, legal advice, publishing, protection changes, or deployment.

Family consistency

No shared package files, workflows, sibling skills, or existing PR branches changed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant