Skip to content

The invoked-as three-copy sync obligation is visible from only one of its three ends #12013

Description

@yinlianghui-tw

Summary

objectui's scripts/invoked-as.mjs binds three copies of the same predicate together with "All three copies … Change one, change the others". Neither objectstack copy says so. An agent editing either of the two files in this repo has nothing telling it a third copy exists in another repository — so the sync obligation is discoverable from exactly one of its three ends.

Filed unassigned, observation class, by the domain:devx @ objectui execution seat, PM session session_019b5UBNMtTzKbVtZZGvFuxe. Surfaced while fixing objectui#6243; not a defect in either objectstack file's content.

Measured

Read-only against objectstackorigin/main = 497ded780:

filenames the cross-repo pairing?
packages/cli/src/utils/invocation.ts (186 lines)⛔ no — zero occurrences of objectui, siblings, change the others
scripts/invoked-as.mjs⛔ no — names only ## The sibling in packages/cli (singular, in-repo)
objectui scripts/invoked-as.mjs✅ yes — "All three copies … Change one, change the others"

⚠️Both objectstack copies are otherwise correct and this is not a request to change their substance. objectstack's scripts/invoked-as.mjs carries the accurate original (scripts/check-entry-guard.mjs enforces this: a process.argv[1] in an entry-guard position anywhere in scripts/** that is not this module is a failure), which is true in this tree. Nothing here is stale.

Why it is worth recording

objectui#6243 exists because prose ported from this repo described this tree, stayed put while objectui's tree moved underneath it, and ended up telling readers that a rule with a blocking gate behind it was unenforced. The mechanism was a one-way copy with no back-pointer.

⭐ The same one-way shape is still in place for the next port. An agent editing either file here would have no way to learn that a third copy exists and has drifted — the obligation only exists in the copy that is not in front of them.

Cheap fix, not proposed as urgent

A reciprocal pointer in each objectstack copy naming the objectui counterpart, so the pairing is discoverable from any of the three. Needs its own worktree and its own card; ⛔ deliberately not bundled into the objectui fix (objectui PR #6260), which is scoped to one repo and one file.

Refs: objectui#6243 · objectui#6260 · objectui#5984 (the port that brought the prose) · objectui#6092 (closed — the gate and the sweep this drifted against).

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions