Skip to content

fix: distinguish replace by direction, not mechanism - #69

Merged
retr0h merged 1 commit into
mainfrom
fix/replace-in-nested-modules
Aug 16, 2026
Merged

fix: distinguish replace by direction, not mechanism#69
retr0h merged 1 commit into
mainfrom
fix/replace-in-nested-modules

Conversation

@retr0h

@retr0h retr0h commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Applying document-system-architecture revealed its replace requirement is wrong. Per CONTRIBUTING I stopped implementing and am correcting the requirement on its own, before the code.

What applying revealed

The requirement said a replace directive "SHALL NOT be merged" and that "no repository contains one today." There are thirteen, merged, across four repositories:

Repository Directives Target
nats-client 5 its own repository root
nats-server 4 its own repository root
osapi 2 its own repository root
osapi-orchestrator 2 its own repository root

Every one belongs to a nested example module pointing at the repository that holds it (=> ../../). None crosses a repository boundary.

Why the rule was wrong

It collapsed two unrelated uses of one keyword:

  • A replace reaching into a sibling repository stands in for a version that should be pinned, and leaks a developer's local layout into a merged tree. That is the thing worth banning.
  • A replace reaching into its own repository root is how a nested module refers to the source beside it. Remove it and the example silently compiles against whatever version the proxy last published — the exact failure the pattern exists to prevent.

The corrected requirement turns on direction rather than mechanism, and adds a scenario for the example-module case.

Tasks 3.3 and 4.2 were unsatisfiable as written and are corrected to match.

Not included

No code. The module rename this change also calls for is written and builds, but it stays out of this PR — correcting a requirement inside an implementation diff is what the workflow is arranged to prevent.

🤖 Generated with Claude Code

Applying the requirement found thirteen merged replace directives
across four repositories, where it asserted none existed. Every one
belongs to a nested example module pointing at its own repository
root, which is how such a module compiles against the source beside
it rather than a published version.

The requirement had collapsed two unrelated uses of one keyword.
Correct it to turn on whether the directive crosses a repository
boundary, and fix the two tasks it made unsatisfiable.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Thank you for contributing to this project! 😊🕹️

@retr0h
retr0h merged commit 2eb8162 into main Aug 16, 2026
6 checks passed
@retr0h
retr0h deleted the fix/replace-in-nested-modules branch August 16, 2026 04:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant