Skip to content

One-time migration: transfer non-seam repo:objectui / repo:cloud cards from the objectstack backlog to their target repos #7167

Closed

Description

@os-zhuang

Maintainer ruling (2026-08-10)

「同意」— ruling on the PM's proposal that execution cards live in the repo where the fix lands, with the existing transfer-lane stock migrated via GitHub issue transfer. Full ruling context and the standing-rule amendment are in #7165. This card does NOT wait for #7165's SKILL PR to merge — its authority is the maintainer ruling directly (same pattern as #6904); #7165 is the durable record.

Scope

All OPEN issues in objectstack-ai/objectstack labeled repo:objectui or repo:cloud, EXCEPT seam cards. Snapshot 2026-08-10: 47 repo:objectui + 2 repo:cloud (#6954, #5852) — re-enumerate at execution time; the two label queries are the authoritative worklist.

Seam criterion (stay in objectstack): the card's content is the cross-repo ordering itself — contract-first chains (a spec/contract change whose objectui/cloud adaptation must wait on an objectstack PR), console-bump linkage chores (#6162 family), anything whose Blocked-by line against an objectstack artifact is the substance. Test per card: would the body still make sense if objectstack did not exist? Yes = transfer; no = seam, stays. Blocked cards #7100 / #6955 / #6954 and any card carrying a Blocked-by on an objectstack issue/PR need this judgment individually; when in doubt, leave in place and note why.

Mechanics

  • GitHub issue transfer within the org (GraphQL transferIssue mutation, e.g. via gh api graphql; the MCP toolset has no transfer tool). Requires issues enabled on target — they are.
  • Thread, assignees and same-named labels carry over (pm:queue / finding / needs-user-decision / pm:blocked / target:v17 all exist in objectui and cloud). The repo:objectui / repo:cloud labels do not exist in the targets and are dropped automatically — correct, they are meaningless there.
  • Transferred issues get NEW numbers; old URLs redirect permanently, so existing references keep resolving.
  • Post-transfer checks: (a) spot-check open PRs whose bodies reference transferred numbers with closing keywords (Fixes #N) — repoint to the full new reference if the keyword must still auto-close; (b) verify no transferred card kept a dangling Blocked-by pointing at a same-repo shorthand number that now means something else — rewrite such lines to full owner/repo#number form.

Post-transfer grading

The objectui and cloud whole-repo seats grade the arrivals into their own backlogs — including the target:v17 four-class check per #6903's one-producer-per-backlog clause. Coordination with #6904 (objectui one-time v17 clearing): whichever of the two runs second must cover the transferred cards, and should say so in its completion comment.

Executor

Triage seat (transfer is a routing action — single-producer territory), with the sibling seats doing post-transfer grading. Audit comment on each transferred issue is not required (the transfer event itself is the audit trail); one summary comment on this card listing old-number → new-number pairs is.

No domain:* label on this card — routing is the triage seat's single-producer territory.

Activity

  1. added
    pm:queueReady for the PM dispatch loop
    domain:devxDomain lane — seat card indexed by label:pm:seat
    on Aug 10, 2026
  2. os-zhuang commented on Aug 10, 2026

    @os-zhuang
    ContributorAuthor

    Routing: domain:devx applied directly by the PM session under the maintainer's standing directive (this session, 2026-08-10):「以后你应该直接路由」. Lane precedent: #6903.

    Note for the devx lane PM: per the body's executor clause, the transfer operations themselves are routing actions executed by the triage seat — this card sits in the devx lane for inventory and coordination. Do not dispatch a dev agent onto the transfers; the dispatchable remainder (if any) is the post-transfer reference-repair checks. The body's closing line ("No domain:* label applied") predates the directive and is superseded by this comment.

    Session: 01JaVVMrSxt7Tgi1uwEuDtH7


    Generated by Claude Code

  3. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Aug 10, 2026
  4. self-assigned this
    on Aug 10, 2026
  5. os-zhuang commented on Aug 10, 2026

    @os-zhuang
    ContributorAuthor

    Claim. Taken by the maintainer-facing PM session under the maintainer's direct-dispatch directive (2026-08-10):「7165、#7167 你直接帮我派发处理」.

    • Session: 01JaVVMrSxt7Tgi1uwEuDtH7
    • Execution shape: API operations only (REST issue-transfer endpoint; the session's GraphQL surface is restricted, REST is authenticated) — no code branch.
    • Label: pm:queue → pm:dispatched (this comment is the pair)
    • Next: per-card seam judgment over the current repo:objectui / repo:cloud stock, then batch transfer; the summary comment here will list every old number and its new home.

    Generated by Claude Code

  6. os-zhuang commented on Aug 10, 2026

    @os-zhuang
    ContributorAuthor

    Migration complete — 42/42 cards moved, 6 stayed by design. Closing as completed.

    Deviation from the body's mechanics (recorded)

    Native GitHub issue transfer is unavailable to this session's credential — the REST transfer endpoint returns 404 for fine-grained/app tokens (measured; other REST writes succeed). Executed as recreate-and-close instead: destination card = verbatim title + provenance header + original body with bare #NNN references rewritten to objectstack-ai/objectstack#NNN; every created body was byte-diffed against the transformed raw-API original (the MCP write path sanitizes angle-bracket fragments — five cards were repaired from raw-API ground truth and re-verified); source closed not-planned with a crosslink comment, thread retained there as authoritative history. No labels were dropped; target:v17 survived on objectui#4044, objectui#4051 and cloud#1222.

    Old → new mapping (42)

    objectstack new home objectstack new home
    #7148 objectui#4022 #5446 objectui#4021
    #7147 objectui#4025 #5432 objectui#4026
    #7146 objectui#4029 #5428 objectui#4032
    #7138 objectui#4034 #5419 objectui#4035
    #7120 objectui#4038 #5418 objectui#4039
    #7119 objectui#4041 #5175 objectui#4044
    #7074 objectui#4045 #5150 objectui#4047
    #7066 objectui#4049 #5149 objectui#4051
    #6975 objectui#4050 #5144 objectui#4053
    #6968 objectui#4052 #5142 objectui#4055
    #6950 objectui#4054 #5141 objectui#4020
    #6669 objectui#4016 #5084 objectui#4024
    #6653 objectui#4017 #5083 objectui#4028
    #6639 objectui#4018 #5076 objectui#4030
    #6411 objectui#4019 #5067 objectui#4033
    #6337 objectui#4023 #5019 objectui#4037
    #6325 objectui#4027 #4118 objectui#4040
    #5968 objectui#4031 #4115 objectui#4043
    #5768 objectui#4036 #4075 objectui#4046
    #5751 objectui#4042 #3083 objectui#4048
    #5666 objectui#4056 #5852 cloud#1222

    Stayed in objectstack (6, seam criterion / in-flight guard)

    Notes for follow-up (small, non-blocking)

    • objectstack#5149's source carried assignee hotlong; the recreated objectui#4051 has no assignee — re-claim if that assignment was live.
    • A handful of bodies whose prose reads "objectui PR #N" had those bare shorthands expanded to objectstack full form (the source's own auto-links pointed there too); the surrounding prose disambiguates, flagged per card in the batch reports.
    • No inbound closing-keyword repairs were needed: all migrated cards were queue/hold/decision state, none referenced by an open PR's Fixes line (in-flight cards were excluded from migration).

    Post-transfer grading of arrivals now falls to the objectui / cloud whole-repo seats per #6903's one-producer-per-backlog clause (labels carried over, so the cards are already in their local state machines). Standing rule lands via #7165 / PR #7185.

    Session: 01JaVVMrSxt7Tgi1uwEuDtH7


    Generated by Claude Code

  7. os-zhuang commented on Aug 10, 2026

    @os-zhuang
    ContributorAuthor

    Arrival-grading coverage statement (per this card's coordination clause with #6904 — the migration ran second, so the transferred cards' target:v17 four-class check is declared here).

    All 42 arrivals graded on 2026-08-10 under the maintainer's directive 「objectui 任务你帮我现在执行 v17 补判」:

    objectui local board after this pass: 8 open target:v17; cloud: 1.

    Session: 01JaVVMrSxt7Tgi1uwEuDtH7


    Generated by Claude Code

  8. os-zhuang commented on Aug 10, 2026

    @os-zhuang
    ContributorAuthor

    Correction to the arrival-grading comment above: the board figures I quoted were an estimate, not a measurement.

    I wrote "objectui local board after this pass: 8 open target:v17; cloud: 1". The objectui figure was never measured — I asserted it from arithmetic on the pass rather than querying the label. Measured at 2026-08-10 ~05:00Z, label:target:v17 is:open per repo:

    Three of the arrival-pass marks are legitimately no longer on the open board, and none of it is a labeling failure:

    Also note the objectstack board fell 14 → 6 over the same window: the five finding-triage promotions marked this morning (#7130, #7129, #7057, #7049, #6964) all landed and closed.

    The grading itself stands as reported; only the summary count was wrong. Recording the correction here rather than editing the comment, so the error stays visible.

    Session: 01JaVVMrSxt7Tgi1uwEuDtH7


    Generated by Claude Code

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

Metadata

Metadata

Assignees

Labels

domain:devxDomain lane — seat card indexed by label:pm:seat

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions