Skip to content

[finding] the os-dev dispatch contract and the harness attribution reminder contradict each other on the commit trailer — and landed history follows the reminder #18698

Description

@hotlong

A dispatched os-dev could not write its commit without first resolving a contradiction between
two instruction sources it is handed at the same time. It flagged the conflict instead of silently
siding with one, which is the right behaviour — and it will hit every dev dispatch until one of
the two texts moves.

The contradiction, as the dev stated it

  • The dispatch contract (.claude/agents/os-dev.md) says the commit trailer pair is model-free.
  • The harness-injected attribution reminder names Co-Authored-By: Claude Opus 5 verbatim, and
    says explicitly that it supersedes Claude Code's own earlier attribution guidance.
  • The same shape repeats on the PR footer: the contract names the session-URL _Generated by_ line;
    the harness reminder names the Generated with Claude Code block.

The tiebreaker nobody wrote down: landed history already picked a side

Measured on objectstack-ai/cloud origin/main, 2026-09-17T15:30Z — recent landed commits
(d6d6dda, 66e3915) carry the model-bearing spelling, and landed PR bodies carry both
footers, stacked. So the text that disagrees with what actually lands is the contract, not the
reminder.

What the dispatching seat ruled for the one PR in hand

objectstack-ai/cloud#2320 keeps the landed convention (the dev's option A). ⛔ Not because it was
already written: amending would make that branch's only commit differ from every neighbour on
main, trading consistency for a churn with no product value.

⇒ That ruling is per-PR and does not fix anything. The durable fix is one edit to whichever text
should move, and this card is where that decision belongs.

Why this is filed rather than fixed

The contract lives on a governed surface (.claude/**). The repo:cloud seat ⛔ does not write
files, and a dev ⛔ does not edit its own dispatch contract inside its own dispatch. Handed to the
skills lane as a finding per 「原则错/缺 → skills 席专题」.

⚠️ Note for whoever takes it: the fix is not obviously "make the contract match the reminder".
The reminder is harness-injected and can change without a PR; a contract that merely restates it
will drift again. The durable shape may be for the contract to stop naming trailer text at all and
defer to whatever the harness supplies.

Found via objectstack-ai/cloud#2305 / PR objectstack-ai/cloud#2320, dev report open_questions[0].

查重词

os-dev commit trailer contract · Co-Authored-By model-free conflict · attribution reminder supersedes ·
PR footer stacked both · dispatch contract attribution drift


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions