Skip to content

roadmap(agent): auto-assign PR opener + auto-project/milestone matching #3180

Description

@JSONbored

Milestone: #21 (Agent-layer controls & autonomy)

Goal

Extend the existing maintainer auto-maintain layer (#778) with two new modular, config-driven actions:

  1. Auto-assign PR opener — set a PR's opening contributor as its GitHub assignee.
  2. Auto-project/milestone matching — attach a PR to an outstanding GitHub Project or Milestone even when it has no closing-keyword issue link, so project/milestone progress tracking stays accurate for work that never explicitly closes an issue.

Both must be independently enable/disable-able per-repo or globally via .gittensory.yml/gate settings, never hardcoded to a specific repo's projects or milestones, and feature 2 must sit behind a pluggable adapter so a future Linear backend can be swapped in without touching the matching logic.

Children

Context

Extends the existing best-effort post-gate auto-maintain step (maybeRunAgentMaintenance, src/queue/processors.ts:2117, wired at :5356-5376), the same hook point that already applies labels via src/github/labels.ts:21. Feature 2 hooks in alongside the existing linked-issue evidence gathering (buildPullRequestAdvisory, src/queue/processors.ts:5239; hard rules in src/review/linked-issue-hard-rules.ts:71,140), and reuses the existing duplicate-PR collision-detection tokenizer for the new text-matching problem (src/signals/engine.ts: tokenize :5301, termOverlap :5273, threshold precedent :865).

Constraints / known blockers (pre-audited, see child issues for detail)

  • GitHub silently drops assignees who lack push/triage access to the repo (docs.github.com/en/rest/issues/assignees) — auto-assign must degrade gracefully to a comment-mention/label fallback for external contributors, or it silently no-ops for the majority of contributor PRs.
  • GitHub Projects v2 is GraphQL-only and needs a new organization_projects: write App permission scope (org-level; existing installs need re-consent). Milestones stay REST-only under the existing Issues:write scope.
  • Project/milestone text-matching has a materially higher false-positive rate than linked-issue keyword matching (no explicit #N keyword to anchor on) — must default to suggest-mode (bot comment), never auto-apply, until validated in production.

Done when

Both features ship as independently toggleable settings, default OFF, with GitHub Projects/Milestones as the first adapter behind a swappable interface and a documented path to a Linear adapter.

Metadata

Metadata

Assignees

Labels

maintainer-onlyOwner-only work — yields no Gittensor points.roadmapOn the Wave-2 agent-layer roadmap board (project 9)

Projects

Status
Done

Relationships

None yet

Development

No branches or pull requests

Issue actions