fix(issue-tracker): PR #52 review findings — binding-aware seam search, park-counting tripwire - #53
Conversation
…h, park-counting tripwire, member disposition Seven codex-connector findings on the merged #52, all adopted: - seam search + relates duty scoped to the gh binding with API-mode fallbacks named (search: server-side dedupe until an arkho#7 route; relates: name seam-mates in the body) [P1 x2] - explicit --limit 200 on the documented search (default 30 truncates silently) [P2] - cluster tripwire counts every non-terminal ticket except deferred — a parked rewrite resumes into its lane without re-running the search [P2] - member disposition belongs to the consolidation ticket (re-cut or close); the --blocked-by prescription is gone — blocking merely defers the collision until the unblock sweep frees the stale rewrites [P1] - spike decomposition path runs the seam search too (it registered children before the Graduation text ever applied) [P2] - the reviewer's comment-on-existing-ticket route is named as the one sanctioned cross-ticket write, ticketless PRs excepted [P2]
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 885329031a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| silently). This search is a gh-binding route; an API-bound repo has no | ||
| client search verb yet — rely on the server's registration-time dedupe | ||
| until one lands (the arkho#7 route family). Then triage the hits: |
There was a problem hiding this comment.
Add a real seam-search fallback for API boards
In an API-bound repo, these lines remove the only operation that discovers open tickets on the same seam and replace it with registration-time deduplication. That dedupe can reject the same defect, but a successful registration does not return different-defect tickets touching the same function, so the following relate and third-ticket branches have no hits to triage; the worker therefore cannot name seam-mates or detect the cluster that this policy is meant to prevent. Provide a binding-neutral search/list route, or otherwise preserve discovery before allowing API-mode registration.
Useful? React with 👍 / 👎.
| - **Cluster tripwire**: if your registration would put a THIRD | ||
| non-terminal ticket onto the same function or contract body, that |
There was a problem hiding this comment.
Exclude spike tickets from the rewrite tripwire
When a large spike is decomposed into several narrower spikes on the same function, the newly required search on that decomposition path counts all of them as non-terminal and mandates an architect consolidation. Spikes explicitly deliver information rather than merged code, so parallel spike tickets cannot cause the silent rewrite collision used to justify this gate. Restrict the count to tickets capable of entering the implementation/write lane while retaining parked work tickets that can later resume.
Useful? React with 👍 / 👎.
| the unified contract, with the members related. Member disposition | ||
| belongs to the consolidation ticket itself — each member is re-cut as | ||
| a slice of the unified contract or closed with a reason. Do not reach |
There was a problem hiding this comment.
Define an authorized route for member disposition
When this tripwire creates a consolidation ticket, its dispatched Architect cannot perform the promised disposition: skills/architecting/SKILL.md:154-161 permits transitions only on the Architect's own ticket and explicitly forbids changing other tickets' states. It can register replacement slices, but it cannot close or repurpose the existing member tickets, leaving those stale rewrites eligible to run after the consolidated implementation lands—the exact collision described below. Assign this disposition to an authorized actor or add a sanctioned mechanism that the consolidation workflow can actually execute.
Useful? React with 👍 / 👎.
| A seam-search hit that says the finding IS an existing open ticket: | ||
| comment your evidence on that ticket instead of registering — the one | ||
| sanctioned cross-ticket write in this protocol (an explicit exception | ||
| to "board writes target the primary ticket"). |
There was a problem hiding this comment.
Route duplicate evidence through an API-authorized actor
For an API-dispatched reviewer, BOARD_RUN_TOKEN always wins credential selection and the server scopes that token to the run's own ticket, so this newly sanctioned comment on a different ticket is refused even if a seam-search route supplies the hit. In that context the reviewer can neither register the duplicate finding nor record its evidence, and the protocol provides no fallback. Route this write through an authorized principal or record an own-ticket proposal that an authorized reconciler can apply.
Useful? React with 👍 / 👎.
…pwire text + surfaces cross-ref
Adopts all 7 codex-connector inline findings from the merged #52 (P1 x3, P2 x4). Prompt-text only.
ghentirely or would search an unrelated issue set, andboard-relate.shrefuses in API mode. Both now name their API-mode fallback (server-side registration dedupe / seam-mates named in the body).--limit 200(P2):gh issue listdefaults to 30 and truncates silently — the documented command now carries an explicit limit.deferred— a needs-human/needs-info park resumes into its lane without re-running the search, so excluding parks let three rewrites proceed in parallel.--blocked-by-the-members prescription is removed. Re-cutting other tickets' edges is not a worker's write, and a block only defers the collision — when the consolidation lands, the unblock sweep frees the stale rewrites to overwrite it. The consolidation ticket owns member disposition: re-cut as slices or close with a reason. (Matches the surface-topology spec's consolidation semantics.)Note: finding 5's twin gap in the sweep queue-depth watch (code, not prose) is being fixed on the open surface-topology branch.