Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@
/tasks/scripts/check_maintainer_approval_test.py @NVIDIA/openshell-codeowners @mrunalp @sjenning @derekwaynecarr
/tasks/scripts/alert_maintainer_change_test.py @NVIDIA/openshell-codeowners @mrunalp @sjenning @derekwaynecarr

# Reviewer routing registry and helper
/REVIEWERS.md @NVIDIA/openshell-codeowners @mrunalp @sjenning @derekwaynecarr
/tasks/scripts/check_review_readiness.py @NVIDIA/openshell-codeowners @mrunalp @sjenning @derekwaynecarr
/tasks/scripts/check_review_readiness_test.py @NVIDIA/openshell-codeowners @mrunalp @sjenning @derekwaynecarr

# PR issue acceptance checks
/tasks/scripts/check_issue_acceptance.cjs @NVIDIA/openshell-codeowners @mrunalp @sjenning @derekwaynecarr
/tasks/scripts/check_issue_acceptance.test.cjs @NVIDIA/openshell-codeowners @mrunalp @sjenning @derekwaynecarr
Expand Down
48 changes: 48 additions & 0 deletions .github/workflows/review-readiness.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

name: Review Readiness

on:
pull_request_target:
types: [opened, ready_for_review, labeled, unlabeled]
Comment thread
purp marked this conversation as resolved.
Dismissed

permissions:
contents: read
pull-requests: write

concurrency:
group: review-readiness-${{ github.event.pull_request.number }}
cancel-in-progress: false

jobs:
reviewers:
name: OpenShell / Review Readiness
if: >-
!github.event.pull_request.draft &&
(github.event.action == 'opened' ||
github.event.action == 'ready_for_review' ||
startsWith(github.event.label.name, 'area:') ||
startsWith(github.event.label.name, 'topic:'))
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
# Use the merged roster and helper, never code from the PR head.
- name: Check out the reviewer roster and helper
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
ref: ${{ github.sha }}
sparse-checkout: |
REVIEWERS.md
tasks/scripts/check_review_readiness.py
sparse-checkout-cone-mode: false
persist-credentials: false

- name: Reconcile reviewer requests
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
python3 tasks/scripts/check_review_readiness.py \
--repo "$GH_REPO" --pr "$PR_NUMBER" --apply
6 changes: 4 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,11 @@ Use agents and the repository skills as needed to understand the affected code,

Every pull request must be approved by someone listed in [MAINTAINERS.md](MAINTAINERS.md) before it can merge. This is enforced by the `OpenShell / Maintainer Approval` status check, which turns green once one of those reviewers approves. Reviews from other contributors are welcome and count toward the general approval requirement, but they do not satisfy this check.

Pull requests that touch the enforcement machinery itself — anything under `.github/workflows/`, `.github/actions/`, `MAINTAINERS.md`, `.github/CODEOWNERS`, or the enforcement scripts in `tasks/scripts/` — additionally require a code owner's approval, listed in [.github/CODEOWNERS](.github/CODEOWNERS). The status check reads its inputs from `main`, but a workflow triggered by a review runs the pull request's own copy of the workflow file, so GitHub's native code owner requirement is what keeps a change from disabling the gate that would have blocked it.
Pull requests that touch the enforcement machinery or reviewer routing — anything under `.github/workflows/`, `.github/actions/`, `MAINTAINERS.md`, `REVIEWERS.md`, `.github/CODEOWNERS`, or the enforcement and reviewer-routing scripts in `tasks/scripts/` — additionally require a code owner's approval, listed in [.github/CODEOWNERS](.github/CODEOWNERS). The status check reads its inputs from `main`, but a workflow triggered by a review runs the pull request's own copy of the workflow file, so GitHub's native code owner requirement is what keeps a change from disabling the gate that would have blocked it.

Maintainers are not requested automatically. If your pull request has been idle, ask for a reviewer in the pull request or in the CNCF Slack channel rather than waiting.
Use exactly one `area:` label and any relevant `topic:` labels on your pull request. The [reviewer routing workflow](.github/workflows/review-readiness.yml) requests all matching members of [REVIEWERS.md](REVIEWERS.md) with repository write access, excluding the author, when a PR opens ready for review, leaves draft status, or gains or loses an area/topic label. Manual reviewer choices and people who have commented or reviewed are preserved. Propose roster membership changes through a reviewed PR.

If your pull request has been idle, ask for a reviewer in the pull request or in the CNCF Slack channel rather than waiting.

## Agent Skills

Expand Down
245 changes: 245 additions & 0 deletions REVIEWERS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,245 @@
# Review areas and topics

## Areas

Areas are OpenShell-specific components or system boundaries. They represent the division of labor across the project. Keep the number of areas small enough to support named leads and reporting during community calls.

### area:build

CI/CD workflows, release pipelines, build targets, packaging, and artifact publication.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| Matthew Grossman | [@matthewgrossman](https://github.com/matthewgrossman) | NVIDIA |
| Simon Scatton | [@SDAChess](https://github.com/SDAChess) | NVIDIA |
| Jim Meyer | [@purp](https://github.com/purp) | NVIDIA |

### area:drivers

Infrastructure orchestration, including compute scheduling, secret management, runtime integrations (GPU, Docker, Podman, virtual machines, Kata Containers, and Kubernetes), deployment topologies, and pause/resume lifecycle operations. Includes host OS and architecture support (including amd64 and arm64), backend-specific isolation (including Windows AppContainer and isolation sessions), and compatibility.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| Evan Lezar | [@elezar](https://github.com/elezar) | NVIDIA |
| Drew Newberry | [@drew](https://github.com/drew) | NVIDIA |
| Mrunal Patel | [@mrunalp](https://github.com/mrunalp) | Red Hat |
| Divesh Chowdary | [@FrostGod](https://github.com/FrostGod) | NVIDIA |

### area:runtime

Sandbox execution, isolation, process supervision, policy enforcement, network proxying, middleware, volumes, and (agent) memory. Includes shared isolation primitives such as Linux namespaces, seccomp and Landlock, and process/executable identity.

Provider discovery and configuration, profiles, sandbox attachments, provider-contributed policy, credential resolution and delivery, refresh and rotation, and provider lifecycle management.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| Drew Newberry | [@drew](https://github.com/drew) | NVIDIA |
| Taylor Mutch | [@TaylorMutch](https://github.com/TaylorMutch) | NVIDIA |
| Shiju | [@shiju-nv](https://github.com/shiju-nv) | NVIDIA |
| Jim Meyer | [@purp](https://github.com/purp) | NVIDIA |

### area:enterprise

Authentication, multitenancy, gateway interceptors, FIPS compliance, and other enterprise requirements.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| Seth Jennings | [@sjenning](https://github.com/sjenning) | Red Hat |
| Derek Carr | [@derekwaynecarr](https://github.com/derekwaynecarr) | Red Hat |

### area:platform

SDKs, CLIs, API machinery, gateway infrastructure, persistence (eg postgres, sqlite support), configuration (gateway.toml), and gateway-side sandbox and session management.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| Piotr Mlocek | [@pimlock](https://github.com/pimlock) | NVIDIA |
| Taylor Mutch | [@TaylorMutch](https://github.com/TaylorMutch) | NVIDIA |
| Divesh Chowdary | [@FrostGod](https://github.com/FrostGod) | NVIDIA |

## Topics

Topics connect contributors with work matching their expertise or interests. They describe technical concerns across areas rather than separate component ownership.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel like extensions could be a topic. It is related to architecture, but more in an external sense, rather than how things are organized internally?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll defer to @drew on that, but offer my utlitarian point of view:

We should add topics where it's a domain that we'd want a differentiated set of folks' eyes on things. So if, as we're looking at it, there's a different collection of folks for topic:extensions (or topic:middleware?) then it's worth it.


### topic:api

Public API contracts, gRPC and protobuf definitions, SDK interfaces, versioning, compatibility, API ergonomics, design patterns, component and communication standards.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| Drew Newberry | [@drew](https://github.com/drew) | NVIDIA |
| Mrunal Patel | [@mrunalp](https://github.com/mrunalp) | Red Hat |

### topic:architecture

Cross-cutting system design, component boundaries, data and control flow, architectural decisions, and RFC-level concerns.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| Drew Newberry | [@drew](https://github.com/drew) | NVIDIA |
| Mrunal Patel | [@mrunalp](https://github.com/mrunalp) | Red Hat |

### topic:authnz

Authentication, authorization, credential protection, policy integrity/signed policiesIncludes identity verification, login and session handling, OIDC integration, bearer-token validation, access permissions, and authorization across tenant and workspace boundaries.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| Seth Jennings | [@sjenning](https://github.com/sjenning) | Red Hat |
| Kris Hicks | [@krishicks](https://github.com/krishicks) | NVIDIA |

### topic:compliance

FIPS, regulatory alignment, auditability, and standardization requirements.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| John T. Myers | [@johntmyers](https://github.com/johntmyers) | NVIDIA |
| Jim Meyer | [@purp](https://github.com/purp) | NVIDIA |

### topic:documentation

Architecture documentation, README maintenance, project website updates, and automated documentation generation.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| Kris Hicks | [@krishicks](https://github.com/krishicks) | NVIDIA |
| Drew Newberry | [@drew](https://github.com/drew) | NVIDIA |
Comment thread
purp marked this conversation as resolved.
| Piotr Mlocek | [@pimlock](https://github.com/pimlock) | NVIDIA |

### topic:dx

Ensure OpenShell is easy to contribute to for humans and agents.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| Evan Lezar | [@elezar](https://github.com/elezar) | NVIDIA |
| John T. Myers | [@johntmyers](https://github.com/johntmyers) | NVIDIA |
| Jim Meyer | [@purp](https://github.com/purp) | NVIDIA |
| Kris Hicks | [@krishicks](https://github.com/krishicks) | NVIDIA |
Comment thread
purp marked this conversation as resolved.
| Piotr Mlocek | [@pimlock](https://github.com/pimlock) | NVIDIA |

### topic:gpu

GPU scheduling, Kubernetes Dynamic Resource Allocation (DRA), Container Device Interface (CDI) configuration, Multi-Instance GPU (MIG) support, and hardware-accelerated runtime integration.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| Evan Lezar | [@elezar](https://github.com/elezar) | NVIDIA |
| Adrien Langou | [@alangou](https://github.com/alangou) | NVIDIA |

### topic:kubernetes

Kubernetes operator development, custom resource definitions (CRDs), deployment controllers, and native integration with Kubernetes APIs.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| Mrunal Patel | [@mrunalp](https://github.com/mrunalp) | Red Hat |
| Drew Newberry | [@drew](https://github.com/drew) | NVIDIA |
| Divesh Chowdary | [@FrostGod](https://github.com/FrostGod) | NVIDIA |
| Kris Hicks | [@krishicks](https://github.com/krishicks) | NVIDIA |
| Taylor Mutch | [@TaylorMutch](https://github.com/TaylorMutch) | NVIDIA |

### topic:mcp

Model Context Protocol (MCP) support, server and client implementations, and standard integration.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| John T. Myers | [@johntmyers](https://github.com/johntmyers) | NVIDIA |
| Shiju | [@shiju-nv](https://github.com/shiju-nv) | NVIDIA |

### topic:networking

General network transport, connectivity, and proxy behavior not covered by the more specialized L7 category.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| John T. Myers | [@johntmyers](https://github.com/johntmyers) | NVIDIA |
| Adrien Langou | [@alangou](https://github.com/alangou) | NVIDIA |
| Shiju | [@shiju-nv](https://github.com/shiju-nv) | NVIDIA |
Comment thread
purp marked this conversation as resolved.
| Divesh Chowdary | [@FrostGod](https://github.com/FrostGod) | NVIDIA |

### topic:observability

Logging, metrics, tracing, telemetry, dashboards, event correlation, and the collection or export of operational data from gateways and sandboxes.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| Kris Hicks | [@krishicks](https://github.com/krishicks) | NVIDIA |
| Matthew Grossman | [@matthewgrossman](https://github.com/matthewgrossman) | NVIDIA |
Comment thread
purp marked this conversation as resolved.
| Taylor Mutch | [@TaylorMutch](https://github.com/TaylorMutch) | NVIDIA |

### topic:operability

Deployment and configuration of OpenShell installations, upgrades, backup and restore, disaster recovery, operational diagnostics, and maintenance of running installations.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| Piotr Mlocek | [@pimlock](https://github.com/pimlock) | NVIDIA |
| Taylor Mutch | [@TaylorMutch](https://github.com/TaylorMutch) | NVIDIA |
| Jim Meyer | [@purp](https://github.com/purp) | NVIDIA |

### topic:performance

Startup time, latency, throughput, resource overhead, scalability, and benchmarking. Includes rate limiting.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| Matthew Grossman | [@matthewgrossman](https://github.com/matthewgrossman) | NVIDIA |
Comment thread
purp marked this conversation as resolved.
| Divesh Chowdary | [@FrostGod](https://github.com/FrostGod) | NVIDIA |
| Drew Newberry | [@drew](https://github.com/drew) | NVIDIA |
| Jim Meyer | [@purp](https://github.com/purp) | NVIDIA |

### topic:policy

Policy authoring, validation, proving, distribution, enforcement, and policy ergonomics across runtimes and APIs. Includes policy hardening.

| Name | GitHub ID | Company/Organization |
Comment thread
purp marked this conversation as resolved.
| --- | --- | --- |
| Adrien Langou | [@alangou](https://github.com/alangou) | NVIDIA |
| Piotr Mlocek | [@pimlock](https://github.com/pimlock) | NVIDIA |
| Shiju | [@shiju-nv](https://github.com/shiju-nv) | NVIDIA |
| John T. Myers | [@johntmyers](https://github.com/johntmyers) | NVIDIA |

### topic:reliability

High availability, failure recovery, retries, graceful degradation, fault tolerance, and operational resilience. Includes correctness across restarts.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| Taylor Mutch | [@TaylorMutch](https://github.com/TaylorMutch) | NVIDIA |
| Piotr Mlocek | [@pimlock](https://github.com/pimlock) | NVIDIA |
| Jim Meyer | [@purp](https://github.com/purp) | NVIDIA |
| Divesh Chowdary | [@FrostGod](https://github.com/FrostGod) | NVIDIA |

### topic:sdk

Software Development Kit (SDK) creation, maintenance, language bindings, and distribution.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| Taylor Mutch | [@TaylorMutch](https://github.com/TaylorMutch) | NVIDIA |
| Simon Scatton | [@SDAChess](https://github.com/SDAChess) | NVIDIA |
| Max Dubrinsky | [@maxdubrinsky](https://github.com/maxdubrinsky) | Gretel |

### topic:security

Vulnerability management, static/dynamic analysis, FSR (Functional Security Requirement) implementation, and security auditing. Includes bypass detection, abuse prevention, and vulnerability remediation.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| Adrien Langou | [@alangou](https://github.com/alangou) | NVIDIA |
| John T. Myers | [@johntmyers](https://github.com/johntmyers) | NVIDIA |
| Jim Meyer | [@purp](https://github.com/purp) | NVIDIA |

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add @SDAChess here as well.

| Simon Scatton | [@SDAChess](https://github.com/SDAChess) | NVIDIA |

### topic:testing

Unit, integration, regression, conformance, and end-to-end testing, including test infrastructure, coverage gaps, flaky tests, and environment-specific test failures.

| Name | GitHub ID | Company/Organization |
| --- | --- | --- |
| Matthew Grossman | [@matthewgrossman](https://github.com/matthewgrossman) | NVIDIA |
| Simon Scatton | [@SDAChess](https://github.com/SDAChess) | NVIDIA |
Comment thread
purp marked this conversation as resolved.
| Evan Lezar | [@elezar](https://github.com/elezar) | NVIDIA |
Loading
Loading