Context
The pr-review skill already enforces self-identification via the agent field on manage_issue_comment (required format: "[Model Name] ([Agent Wrapper])"). Review comments on every PR carry explicit authorship.
The pull-request skill has no analogous requirement. PR bodies authored by agents carry author identity only via the Origin Session ID footer (when authors remember). Commits show @-account authorship but not model identity when multiple agents share an account.
Asymmetric discipline across two skills handling the same PR lifecycle.
The Problem
- Cross-harness sessions (the session that originated this ticket: Claude Opus 4.7 + Gemini 3.1 Pro authoring artifacts on the same PR #10140) are invisible to readers parsing git history —
@tobiu shows as author of Gemini's commit AND of Claude's review comment
- Measurement is blocked — no clean way to count model-attributed commits / PRs / comments across a session or across harnesses without manual comment-body parsing. Feeds directly into MX graduation criteria (cross-model convergence metric)
- A2A provenance (per AGENTS.md §14) works for tickets + Origin Session IDs but not for PR bodies consistently
The Architectural Reality
Files:
.agent/skills/pull-request/SKILL.md — router
.agent/skills/pull-request/references/pull-request-workflow.md — authoritative protocol doc; add self-ID requirement here
- PR body template (if one exists) or conventional header pattern
Pattern to mirror: .agent/skills/pr-review/references/pr-review-guide.md §4 self-identification mandate, applied to the PR body rather than review comments.
The Fix
- Add a required "Self-Identification" section to
pull-request-workflow.md — PR body must include an "Authored by [Model] ([Harness]). Session <Origin Session ID>." line near the top
- When cross-harness (paradigm-from-A, artifact-from-B), convention: "Authored by [model-B] ([harness-B]) consuming [model-A]'s Discussion/handoff — session A
<id>, session B <id>."
- Update SKILL.md router to mention the requirement explicitly
- Optional: add a rendered PR body template or check-block to the
assets/ directory
Acceptance Criteria
Out of Scope
- GitHub account-level model identity (
neo-opus-4.7, etc.) — separate exploration, Ideation Sandbox Discussion TBD with #9535 + OpenClaw as precedent anchors
- Commit-level authorship via Git
--author / committer fields — deeper change, may need separate ticket if the Discussion settles on that path
- Enforcement mechanism (linter, skill-side validator) — out of scope; this is a discipline change documented in the skill reference, not mechanically enforced until friction surfaces a need
Avoided Traps
- Rejected: wait for GitHub accounts to ship first. Accounts solve identity for SOME dimensions (model name baked into handle) but not others (harness, session). Enforcement and accounts are complementary, not substitutes. Shipping the enforcement now costs nothing and tightens the current ad-hoc comment-body convention.
- Rejected: mechanically enforce via skill validator. Discipline via doc is lower-friction and consistent with other pull-request workflow requirements (Stepping Back reflection, Conventional Commits). If enforcement gaps surface as friction, a validator can be added then.
Related
pr-review skill §4 — existing self-ID precedent to mirror
- #9535 — AI Village empirical evidence that per-model-version GitHub accounts are a working pattern (
@claude-opus-4-5, @claudehaiku45, @claude-opus-4-6). Includes the amnesia-irony case study: AI Village reached out re: session-boundary persistence, conversation went silent across their own session boundaries — which is exactly the failure mode identification + Memory Core together solve
- OpenClaw — 247K-star (as of March 2026) mainstream validation of autonomous-agent-identity category. Context for why this pattern matters beyond just internal Neo work
- PR #10140 (MX.md) — cross-harness authorship (Claude Opus 4.7 review + Gemini 3.1 Pro commit on same PR) that made this gap concrete during session origin
- PR-skill-enhancements ticket (per @tobiu's 2026-04-20 reference — consolidation welcome if that ticket is the right home)
- MX graduation criteria (from Discussion #10137 +
learn/agentos/MX.md once #10140 merges) — cross-model attribution enables clean measurement of cross-model convergence metric
Origin Session IDs: 5a521819-dc75-4549-888e-fcea818d0401 (MX framing + PR #10140 review) / a38d25d1-3003-4d57-b0ac-0effe2c3507e (post-reconnect session with ticket filing + cross-harness A2A)
Context
The
pr-reviewskill already enforces self-identification via theagentfield onmanage_issue_comment(required format:"[Model Name] ([Agent Wrapper])"). Review comments on every PR carry explicit authorship.The
pull-requestskill has no analogous requirement. PR bodies authored by agents carry author identity only via the Origin Session ID footer (when authors remember). Commits show @-account authorship but not model identity when multiple agents share an account.Asymmetric discipline across two skills handling the same PR lifecycle.
The Problem
@tobiushows as author of Gemini's commit AND of Claude's review commentThe Architectural Reality
Files:
.agent/skills/pull-request/SKILL.md— router.agent/skills/pull-request/references/pull-request-workflow.md— authoritative protocol doc; add self-ID requirement herePattern to mirror:
.agent/skills/pr-review/references/pr-review-guide.md§4 self-identification mandate, applied to the PR body rather than review comments.The Fix
pull-request-workflow.md— PR body must include an "Authored by [Model] ([Harness]). Session<Origin Session ID>." line near the top<id>, session B<id>."assets/directoryAcceptance Criteria
pull-request-workflow.mdhas a §X: Self-Identification sectionpr-review§4 precedentOut of Scope
neo-opus-4.7, etc.) — separate exploration, Ideation Sandbox Discussion TBD with #9535 + OpenClaw as precedent anchors--author/committerfields — deeper change, may need separate ticket if the Discussion settles on that pathAvoided Traps
Related
pr-reviewskill §4 — existing self-ID precedent to mirror@claude-opus-4-5,@claudehaiku45,@claude-opus-4-6). Includes the amnesia-irony case study: AI Village reached out re: session-boundary persistence, conversation went silent across their own session boundaries — which is exactly the failure mode identification + Memory Core together solvelearn/agentos/MX.mdonce #10140 merges) — cross-model attribution enables clean measurement of cross-model convergence metricOrigin Session IDs:
5a521819-dc75-4549-888e-fcea818d0401(MX framing + PR #10140 review) /a38d25d1-3003-4d57-b0ac-0effe2c3507e(post-reconnect session with ticket filing + cross-harness A2A)