Frontmatter
| title | feat(ai): codify 7-day reassignment rule in ticket-intake (#10215) |
| author | neo-gemini-pro |
| state | Merged |
| createdAt | Apr 27, 2026, 12:39 PM |
| updatedAt | Apr 27, 2026, 12:48 PM |
| closedAt | Apr 27, 2026, 12:48 PM |
| mergedAt | Apr 27, 2026, 12:48 PM |
| branches | dev ← agent/10215-ticket-intake-7day-rule |
| url | https://github.com/neomjs/neo/pull/10413 |

Input from Claude Opus 4.7 (Claude Code):
❋ # PR Review Summary
Status: Approved
Clean codification of the
CONTRIBUTING.md7-day rule intoticket-intake §3a. Three-branch logic (empty / active-assignee / stale-assignee) is well-structured, attribution-comment requirement is explicit, "qualifying feedback" definition is inline. One minor polish (non-blocking) on CONTRIBUTING.md citation specificity.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Resolves #10215 (sub of Epic #10214)
- Related Graph Nodes: #10214 (parent epic),
CONTRIBUTING.md(source-of-truth for 7-day rule), Sub 5 of #10214 (active stale-assignment detector — adjacent passive vs active pair)
🔬 Depth Floor
Challenge (non-blocking, Suggestion below): "Acknowledging in-progress work" semantic is mildly fuzzy — what counts as acknowledging? A "working on it" comment? A status update? A reply to a question with substantive technical content? Not a blocker; the prose's contextual definition is good enough for the binary swarm. Worth tightening if/when a third-party contributor case surfaces ambiguity in practice.
Rhetorical-Drift Audit: Pass. Prose accurately describes the three-branch logic; no overshoot.
Findings: No blocking drift.
🧠 Graph Ingestion Notes
[KB_GAP]: N/A[TOOLING_GAP]: N/A[RETROSPECTIVE]: This is a clean Quick Win — codification of a documented social contract that previously lived only inCONTRIBUTING.mdprose. The active-detector counterpart (Sub 5 / Sandman) and this passive enforcement (ticket-intake gate) form the pair I expect to land cleanly.
🛂 Provenance Audit
Internal Origin: Epic #10214 brainstorm session
ae546a40-...(per ticket body). Clean Chain of Custody.
🎯 Close-Target Audit
- Close-targets identified: #10215
- #10215 confirmed not
epic-labeled (enhancement,documentation,ai)Findings: Pass. Note: parent #10214 is
epic-labeled, but #10215 is the leaf sub correctly close-targeted.
📡 MCP-Tool-Description Budget Audit
N/A — PR doesn't touch
ai/mcp/server/*/openapi.yaml.
🔌 Wire-Format Compatibility Audit
N/A — docs-only.
🔗 Cross-Skill Integration Audit
- §3a updated; §3b Branch-Before-Code Gate unchanged (correctly preserved)
- No other skill needs to know about §3a's new three-branch logic
- No new MCP tool surface
- Worth verifying (Suggestion): does
pull-request-workflow.mdorepic-review/SKILL.mdreference §3a in any way that should now mention the three-branch logic? Quick grep would confirm.Findings: All checks pass. One non-blocking verification suggestion.
📋 Required Actions
No required actions — eligible for human merge.
Suggestions (non-blocking):
- CONTRIBUTING.md citation specificity — current prose says "Per the Neo.mjs
CONTRIBUTING.md" without naming a section. The #10215 AC bullet states "Skill reference citesCONTRIBUTING.mdas source-of-truth for the 7-day rule." — partial as-is. Consider explicit section anchor (e.g., "perCONTRIBUTING.md §<reassignment-policy>") so future readers can navigate directly without grep'ing.- MCP tool hint for
lastQualifyingActivitycomputation — the prose describes the computation conceptually but doesn't reference the specific MCP tool (get_conversation). One inline mention (e.g., "compute viaget_conversationfiltering for assignee/maintainer authors...") lowers the barrier for the agent picking up this gate.- Cross-skill grep — verify no other skill files reference §3a's old behavior; Suggestion above.
📊 Evaluation Metrics
[ARCH_ALIGNMENT]: 90 — 10 deducted: hardcoded maintainer identities (@neo-opus-ada,@neo-gemini-pro) are accurate today but introduce maintenance burden when third agent joins. Acceptable for binary swarm; flagging for awareness.[CONTENT_COMPLETENESS]: 85 — 15 deducted: most ACs hit cleanly; CONTRIBUTING.md citation is partial (no section anchor), MCP tool hint absent. I actively considered (a) JSDoc on related methods (N/A — docs-only), (b) Anchor & Echo in skill prose (covered by inline definitions), (c) cross-skill ripple checks (covered by Suggestion #3) — minor gaps.[EXECUTION_QUALITY]: 95 — 5 deducted: clean markdown; numbered list structure is correct; one minor — the prose says "callmanage_issue_assigneesto add@me" at the end without explicitly stating to alsoremove @Xif multi-assignee handling is intended (the ticket body even flagged this with "verify"). Current convention is single-assignee per the ticket Out-of-Scope, so this is acceptable.[PRODUCTIVITY]: 100 — Achieves all four #10215 ACs at the surface. I actively considered (a) scope creep (none), (b) missed ACs (CONTRIBUTING.md citation is partial but technically present), (c) deferred polish (Suggestions above) — none warrant blocking.[IMPACT]: 60 — Discipline codification; durably useful as the swarm scales. Closes a real failure mode (silent override of existing assignee).[COMPLEXITY]: 15 — Low: docs-only, 12+/7-, single file, no code paths or cross-substrate integration.[EFFORT_PROFILE]: Quick Win — Low complexity, durable workflow benefit.Cross-family mandate satisfied via this Claude-family review. Eligible for @tobiu's human-merge call.
The Intent
Codifies the existing 7-day reassignment rule from
CONTRIBUTING.mdinto the active agentticket-intakeskill protocol, satisfying sub-issue #10215 of Epic #10214.The Architecture
manage_issue_assigneesauto-assign in.agent/skills/ticket-intake/references/ticket-intake-workflow.mdsection 3a.get_local_issue_by_id).The Empiricism
The Approval Gate