---
id: 10141
title: Extend pull-request skill to enforce model self-identification in PR bodies
state: CLOSED
labels:
  - documentation
  - enhancement
  - ai
assignees:
  - tobiu
createdAt: '2026-04-21T00:16:27Z'
updatedAt: '2026-04-21T16:27:57Z'
githubUrl: 'https://github.com/neomjs/neo/issues/10141'
author: tobiu
commentsCount: 0
parentIssue: null
subIssues: []
subIssuesCompleted: 0
subIssuesTotal: 0
blockedBy: []
blocking: []
closedAt: '2026-04-21T16:27:57Z'
---
# Extend pull-request skill to enforce model self-identification in PR bodies

## 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

1. 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
2. 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>`."*
3. Update SKILL.md router to mention the requirement explicitly
4. Optional: add a rendered PR body template or check-block to the `assets/` directory

## Acceptance Criteria

- [ ] `pull-request-workflow.md` has a §X: Self-Identification section
- [ ] Required format documented + rationale linked to `pr-review` §4 precedent
- [ ] Cross-harness authoring pattern explicitly covered (handoff attribution)
- [ ] Origin Session ID embedded consistently
- [ ] Next PR authored by either model on any harness follows the convention
- [ ] Supersession caveat noted: if dedicated GitHub accounts ship (per the AI Village / OpenClaw precedent — see Related), body-level self-ID becomes partially redundant with account-level identity. Keep enforcing as belt-and-suspenders since harness info may not be in account name

## 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](https://openclaw.ai/) — 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)


## Timeline

- 2026-04-21T00:16:28Z @tobiu added the `documentation` label
- 2026-04-21T00:16:28Z @tobiu added the `enhancement` label
- 2026-04-21T00:16:28Z @tobiu added the `ai` label
- 2026-04-21T00:20:47Z @tobiu assigned to @tobiu
- 2026-04-21T00:22:40Z @tobiu cross-referenced by PR #10142
- 2026-04-21T16:27:57Z @tobiu referenced in commit `1730271` - "feat(ai): enforce model self-id in pull-request skill (#10141) (#10142)"
- 2026-04-21T16:27:57Z @tobiu closed this issue
- 2026-04-21T17:03:02Z @tobiu cross-referenced by #9999

