Skip to content

feat: extract shared issue and PR labeling skill #5353

Open

Description

@purp

User Story

As an OpenShell maintainer managing issues and pull requests, I need consistent classification of accepted work so that relevant contributors receive useful area/topic notifications without repeated manual labeling or unaccepted-intake noise.

Description

Deliver Part 2 of #5276: extract a manually invocable /label-issue contributor skill and a reusable deterministic helper. Triage retains its assessment decisions and delegates label reconciliation to the shared skill.

Classify one issue or PR from substantive evidence and the current canonical taxonomy. Existing labels are reconciliation state, not authoritative evidence. Correct inaccurate or incomplete current labels and contextually migrate old and retired associations according to #5151. Both issues and PRs require exactly one primary area and any supported topics.

Keep ordinary ambiguity in preview/application reports for tuning. Make the best-supported choice without routine human escalation and never post labeling comments. Preserve unrelated labels and human-owned dispositions.

The helper owns eligibility, lifecycle exclusions, result validation, live rechecks, bounded GitHub API retries/timeouts, and label mutation. Persist successful examination checkpoints in label-addition event rationale metadata under #5276's protocol. Unchanged eligible items skip without model classification; partial or stale checkpoints must not suppress recovery. Show any bookkeeping label events in preview.

Context

Definition of Done

  • Provide /label-issue with a concrete structured output contract and preview/apply commands.
  • Include the importable deterministic helper and shared issue-acceptance adapter without duplicating acceptance policy.
  • Support contextual legacy migration, accurate current-label correction, and exactly one area on both item types.
  • Preserve human dispositions and unrelated labels; no labeling comments or repository-wide label provisioning.
  • Implement trusted event-metadata checkpoints, efficient model-free unchanged skips, and recoverable real-addition, removal-only, and no-classification-change paths.
  • Delegate label reconciliation from triage while preserving read-only queue review and scoped confirmation requirements.
  • Validate API resilience, evidence completeness, stale inputs, lifecycle gates, concurrency limits, and partial mutations with offline tests.
  • Record observed classification validation and representative read-only previews; document missing prerequisites and practical limits.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions