Review TRTMC PR
Review Contract
- Review an explicit comparison: the exact PR base and head in pull-request
mode, or the fetched canonical
main, local HEAD, and disclosed working
tree state in local self-review mode. Never substitute a remembered branch.
- Treat the canonical
NVIDIA/TensorRT-Model-Connect:main, root AGENTS.md,
CONTRIBUTING.md, and current architecture documents as authoritative. PR
#1093 explains the cutover but is historical rationale, not a substitute for
current code and policy.
- Review changed behavior and newly relied-on behavior. Do not charge the PR
for unrelated, unchanged migration debt.
- Keep the PR and contributor branch unchanged. Do not approve, request
changes, comment, label, trigger CI, push, or edit code unless the user
explicitly asks for that separate action.
- Treat fork code as untrusted. Inspect it in a detached temporary worktree;
never run it on a privileged or protected runner and never expose secrets.
- An absence of findings is not proof of correctness. State untested paths and
unresolved evidence explicitly.
Select The Review Mode
- Use pull-request mode when given a PR number or URL. Prefer this mode for
the final contributor self-review because it includes the exact remote head,
PR description, commits, linked issue, and current checks.
- Use local self-review mode when asked to review a branch before a PR
exists. Include committed changes and disclose staged, unstaged, and
untracked files. A dirty working tree cannot receive a ready-to-submit result
because its uncommitted content has no immutable reviewed head.
For contributor self-review, remain read-only and tell the contributor whether
the self-review checkbox can honestly be selected. Do not mark the PR ready,
push, commit, edit files, or publish comments unless separately requested.
Establish The Pull-Request Baseline
Record the repository, PR number, base SHA, head SHA, author, linked issue,
current review state, and check state. Refresh remote information instead of
using a prior session or stale local ref.
gh pr view <PR> --repo NVIDIA/TensorRT-Model-Connect \
--json number,title,body,url,state,isDraft,author,baseRefName,headRefName,headRefOid,mergeable,mergeStateStatus,reviewDecision,changedFiles,files,commits,reviews,comments,statusCheckRollup
gh api repos/NVIDIA/TensorRT-Model-Connect/pulls/<PR> \
--jq '{base_sha: .base.sha, head_sha: .head.sha, author_association: .author_association}'
gh pr diff <PR> --repo NVIDIA/TensorRT-Model-Connect
gh pr checks <PR> --repo NVIDIA/TensorRT-Model-Connect
Use the paginated pull-files API when a PR is large enough that a summarized
file list may be incomplete. Fetch the exact PR head and create a detached
temporary worktree when local searches or tests are needed. Preserve the
user's active worktree and remove only the temporary worktree created for the
review.
Establish The Local Self-Review Baseline
Inspect git remote -v and select the fetch remote whose URL resolves to
NVIDIA/TensorRT-Model-Connect. External forks normally name it upstream;
maintainer clones may name it github or origin. Never use a contributor
fork's main as the canonical base merely because its remote is named
origin. Fetch canonical main, then record the base ref and SHA, merge base,
local head SHA, branch name, and working-tree state.
git remote -v
git fetch <canonical-remote> main
git branch --show-current
git rev-parse <canonical-remote>/main
git merge-base <canonical-remote>/main HEAD
git rev-parse HEAD
git status --short
git diff --stat <merge-base>
git diff --name-status <merge-base>
git diff <merge-base>
git ls-files --others --exclude-standard
git log --format=fuller <merge-base>..HEAD
git diff <merge-base> includes committed, staged, and tracked unstaged
content. Inspect every intended untracked file separately because Git does not
include it in that diff. If the canonical remote is ambiguous, HEAD is the
canonical main branch, or intended files cannot be distinguished from unrelated
local work, report the limitation instead of guessing.
Before reading implementation details, establish whether the linked issue's
problem still exists on current main. A long-lived PR may have been
superseded, narrowed, or made unnecessary by #1093 or a later merge. A proposed
abstraction with no current consumer does not inherit justification from an
obsolete issue.
Load The Current Rules
Always read:
AGENTS.md
CONTRIBUTING.md
.github/pull_request_template.md
- the linked issue or discussion and material maintainer comments, when one is
available
Then read only the architecture guides relevant to the changed paths:
- family or model work:
website/docs/architecture/ai-native-horizontal-scaling.md,
website/docs/architecture/validation-design.md, and
website/docs/extend/add-model-family.md;
- Python build or discovery:
website/docs/architecture/build-pipeline.md;
- native build:
website/docs/architecture/build-system.md;
- loader, DSO, Task, or backend work:
website/docs/architecture/runtime-lifecycle.md and
website/docs/architecture/runtime-plugins.md;
- cross-layer ownership:
website/docs/architecture/units-and-ownership.md.
When reviewing the PR title, body, validation claims, or proposed contributor
reply, also read and apply ../write-git-messages/SKILL.md.
Fast Review Funnel
1. Reconcile Intent With Current Main
Summarize the problem, observable exit criteria, non-goals, affected public
contracts, and claimed evidence. Compare these with the linked issue and the
current base. Flag stale paths, claims about already-existing APIs, obsolete
registries, or a solution that no longer has a concrete consumer.
For a new checkpoint or model, inspect the authoritative model card, config,
tokenizer/preprocessor configuration, license, and exact pinned revision.
Confirm its real task and required input protocol; architectural similarity to
an existing family does not prove that the existing reference or validation
path exercises the checkpoint's product behavior.
2. Classify The Diff Boundary
Build a changed-path map before deep review:
| Changed area |
First question |
families/<family>/** |
Can this family be built, tested, changed, and reverted without a sibling edit? |
| more than one family |
Is there a real multi-owner requirement, or a cross-family dependency/bulk migration? |
core/** or public headers |
Is this a narrow model-agnostic contract with concrete consumers? |
apps/** or examples/** |
Does it consume only public APIs and keep model semantics in the family? |
tools/**, CI, or shared validation |
Does it schedule generic mechanics without owning family policy or weakening evidence? |
| root dependencies/build files |
Does one family now force coordination or dependency changes for every family? |
| media, weights, fixtures, generated files |
Are source, license, attribution, and repository policy satisfied? |
A normal family contribution should change only families/<owner>/**. A
shared Task contract may legitimately accompany the first family whose user
behavior cannot be represented by an existing Task API; a shared edit is a
review trigger, not an automatic violation.
3. Check Architecture Ownership
Verify these invariants from code, build files, tests, and data flow:
- The family owns checkpoint identity, tasks/default, config, weights,
topology, TensorRT graph, bundle-section semantics, runtime orchestration,
bindings, preprocessing, postprocessing, dependencies, fixtures, manifests,
thresholds, references, and oracles.
- A family does not import, include, link, load, inherit from, symlink to, or
read implementation or validation artifacts owned by a sibling family.
- Similar model-specific code remains family-local. Do not recommend a shared
helper merely to remove duplication.
support.py is dependency-free apart from the support contract, uses exact
identity matching, and produces exactly one owner or a clear error. It does
not use broad prefixes, scores, priority, repository-name guesses, or
first-match fallback.
model.py exposes one plain build(request, writer) function, explicitly
handles or rejects all request dimensions, and writes the selected task and
backend without guessing.
- Core contains only model-agnostic discovery/loading, bounded bundle
mechanics, public Build/Task/Engine contracts, stable primitives, and the
explicit BYOK boundary. It contains no family switch, model tensor name,
tokenizer policy, topology, threshold, dataset, reference logic, or
family-specific default disguised as a generic API.
- Core owns safe bundle framing and bounded reads; each family owns its section
names, schemas, and meaning. A second parser or new shared abstraction needs
a current independent consumer and a single clearly owned contract.
- Runtime loads exactly the family and backend named by the bundle. Family
pipelines use abstract Task and Engine APIs, do not link the concrete backend
or loader, and do not retain references to temporary factory context.
- Applications, examples, benchmarks, and BYOK consume public APIs. Core,
backend, and families never depend on application code.
- Generic family semantics do not branch on GPU, SM, CUDA, driver, or TensorRT
version. A real family-local TensorRT custom plugin may be valid; expanding
ad hoc CUDA/cuBLAS helper execution outside TensorRT or TVM-FFI is not.
- Shared dependencies are genuinely common. Family-only packages and versions
stay in the owner
requirements.txt, and one family job does not merge
incompatible environments from several families.
Read references/manual-review-probes.md
when any model, family, runtime, bundle, benchmark, validation, dependency, or
CI behavior changes. It covers semantic failures that path guards cannot
detect.
4. Trace Behavioral Correctness
Follow the changed path end to end rather than reviewing isolated functions:
checkpoint -> support resolution -> family build -> bundle
-> exact family DSO -> Task call -> family-owned oracle
Inspect relevant callers, consumers, configuration, tensor shapes/layouts,
weight names, special tokens/chat templates, resize/pad/mask behavior,
postprocessing, object lifetimes, failure propagation, and teardown. Compare
the native path with the official reference using identical semantic inputs.
Do not accept parity between two implementations that share the same wrong
assumption. A writer-reader round trip is useful consistency evidence but is
not an independent format validator. Likewise, a test that compares only a
convenient subset of outputs does not validate omitted task semantics.
5. Audit Validation Meaning
- Tests must exercise the changed behavior and fail for the regression they
claim to prevent.
- A requested E2E case must produce exactly one executed, non-skipped result.
Missing, duplicate, skipped, or unintended cases fail closed; a zero-test
pytest exit is not a pass.
- Oracles must cover the task's essential outputs. Examples include boxes and
detection counts for detection, generated content for text, reference-relative
image/video evidence, and temporal behavior when the task promises it.
- Reference and native inputs, tokenizer framing, build options, precision,
and aggregation levels must be aligned before drawing a parity conclusion.
- Thresholds, expected values, oracle strength, and acceptance criteria must
not be weakened to obtain green CI. If a test appears wrong, require human
review of the evidence.
- Benchmark sides must time equivalent regions and keep shards, batches,
requests, queries, samples, tokens, and artifacts as distinct accounting
units.
- A family-only test does not prove a changed shared contract for all
consumers. Scale evidence to the actual impact classification.
6. Audit Contributor And Repository Compliance
Check that:
- the PR title is focused, imperative, Conventional Commit-style, and contains
no banned terms;
- every commit introduced by the PR has a valid author-owned DCO sign-off;
- all pull-request template sections are complete, change categories match the
actual diff, exactly one risk level is selected, and paths/claims describe
the current architecture;
- validation lists exact commands, outcomes, tested head, checkpoint and
dependency revisions, hardware/environment when relevant, and unrun paths;
- the contributor self-review checkbox is selected only after the contributor
has actually reviewed the change;
- repository documentation, code comments, user-facing messages, and PR text
are English except model data needed for multilingual validation;
- SPDX headers, third-party notices, asset entries, and redistribution rights
are complete;
- the change remains focused and does not add compatibility paths, fallbacks,
registries, speculative hooks, or unrelated cleanup.
Run Proportionate Checks
In pull-request mode, run checks from the exact-head temporary worktree. In
local mode, run them from the reviewed checkout and report whether it was
clean. Start with the current lightweight commands from CONTRIBUTING.md:
git diff --check <base-sha>...<head-sha>
PYTHONPATH=core/builder:apps/benchmark:. python3 -m tools.model_ci validate
PYTHONPATH=core/builder:apps/benchmark:. python3 tools/test_impact.py --validate
PYTHONPATH=core/builder:apps/benchmark:. python3 tools/test_impact.py \
--base <base-sha> --head <head-sha>
PYTHONPATH=core/builder:apps/benchmark:. python3 -m pytest \
tools/tests/test_architecture.py tools/tests/test_family_impact.py
For a dirty local self-review, use git diff --check <merge-base> to include
tracked working-tree changes, inspect untracked files explicitly, and state
that impact selection covers the committed head unless explicit files were
supplied. Do not represent uncommitted content as reviewed by the HEAD SHA.
Then run the smallest tests that directly exercise each changed contract and
affected family. Do not run downloaded contributor code with credentials or on
protected hardware. If dependencies, checkpoints, or target hardware are not
available, inspect the test logic and report the missing evidence instead of
claiming execution.
Interpret CI carefully:
- Public Community CI and protected premerge are different evidence tiers.
- A bridge dispatch is not a protected test pass.
- Only a passing
TRTMC Internal CI / Automated premerge gate on the current
head proves protected premerge for that head.
- A later push invalidates earlier head evidence. A base advance may also
require a fresh exact-merge result.
- Green source or architecture checks do not prove TensorRT build, checkpoint
inference, model parity, target-platform behavior, or performance.
Report Findings First
For a maintainer review, return a concise review in this order:
Verdict: PASS | BLOCK | HUMAN REVIEW REQUIRED, Merge readiness: READY | NOT READY, the recommended GitHub action (Approve, Request changes,
Comment, or Wait), and exact base/head.
- Findings ordered by severity. For each finding include:
Blocking, High, or Medium and a short title;
- violated architecture rule or claimed behavior;
- exact changed-file line evidence and the relevant caller/consumer;
- affected family or shared blast radius;
- the smallest correction or evidence that would resolve it.
- A short architecture summary covering family ownership, shared neutrality,
one-way application dependencies, and validation ownership.
- Checks/evidence verified, followed by untested paths and residual risk.
- A contributor-facing reply only when requested. Draft it in friendly,
specific English; distinguish repository evolution from contributor error.
For contributor self-review, use the same finding and evidence structure, but
replace merge authority with:
Verdict: PASS | BLOCK | HUMAN REVIEW REQUIRED, Submission readiness: READY TO MARK READY | READY TO OPEN DRAFT | KEEP DRAFT | NOT READY, exact
base/head, and whether the worktree is clean.
- The next contributor action. Do not recommend
Approve or Request changes, because contributors do not review their own PR in that role.
- Whether the contributor can honestly select the Contributor Self-Review
checkbox. Keep the detailed verdict, findings, exact head, and evidence in
the review response; the PR template requires only the confirmation.
Keep review verdict separate from merge readiness. A code/architecture PASS
may still be NOT READY while required exact-head CI, model proof, or human
approval is pending.
Use BLOCK for an evidence-backed incorrect result, validation weakening,
public-contract defect, direct cross-family dependency, model semantics in
shared implementation, or other merge blocker. Use HUMAN REVIEW REQUIRED
when a material contract, consumer need, compatibility choice, or architecture
exception cannot be resolved from available evidence. Use PASS only when no
violation was found, and preserve its limits.
Do not emit style-only Low findings. Consolidate repeated symptoms under one
root cause, distinguish facts from risks, and never invent a test result or
claim that CI covers an unexecuted path.
1---2name: review-trtmc-pr3description: Review a TensorRT-Model-Connect GitHub PR or local contributor branch against the current post-#1093 model-family isolation architecture, repository rules, behavioral correctness, and exact-head validation evidence. Use for contributor self-review before marking a PR ready, or when deciding whether a community PR is compliant, decoupled, merge-ready, or needs maintainer feedback. The review is read-only unless the user separately asks to publish it or change the contribution.4---56# Review TRTMC PR78## Review Contract910- Review an explicit comparison: the exact PR base and head in pull-request11 mode, or the fetched canonical `main`, local `HEAD`, and disclosed working12 tree state in local self-review mode. Never substitute a remembered branch.13- Treat the canonical `NVIDIA/TensorRT-Model-Connect:main`, root `AGENTS.md`,14 `CONTRIBUTING.md`, and current architecture documents as authoritative. PR15 #1093 explains the cutover but is historical rationale, not a substitute for16 current code and policy.17- Review changed behavior and newly relied-on behavior. Do not charge the PR18 for unrelated, unchanged migration debt.19- Keep the PR and contributor branch unchanged. Do not approve, request20 changes, comment, label, trigger CI, push, or edit code unless the user21 explicitly asks for that separate action.22- Treat fork code as untrusted. Inspect it in a detached temporary worktree;23 never run it on a privileged or protected runner and never expose secrets.24- An absence of findings is not proof of correctness. State untested paths and25 unresolved evidence explicitly.2627## Select The Review Mode2829- Use **pull-request mode** when given a PR number or URL. Prefer this mode for30 the final contributor self-review because it includes the exact remote head,31 PR description, commits, linked issue, and current checks.32- Use **local self-review mode** when asked to review a branch before a PR33 exists. Include committed changes and disclose staged, unstaged, and34 untracked files. A dirty working tree cannot receive a ready-to-submit result35 because its uncommitted content has no immutable reviewed head.3637For contributor self-review, remain read-only and tell the contributor whether38the self-review checkbox can honestly be selected. Do not mark the PR ready,39push, commit, edit files, or publish comments unless separately requested.4041## Establish The Pull-Request Baseline4243Record the repository, PR number, base SHA, head SHA, author, linked issue,44current review state, and check state. Refresh remote information instead of45using a prior session or stale local ref.4647```bash48gh pr view <PR> --repo NVIDIA/TensorRT-Model-Connect \49 --json number,title,body,url,state,isDraft,author,baseRefName,headRefName,headRefOid,mergeable,mergeStateStatus,reviewDecision,changedFiles,files,commits,reviews,comments,statusCheckRollup50gh api repos/NVIDIA/TensorRT-Model-Connect/pulls/<PR> \51 --jq '{base_sha: .base.sha, head_sha: .head.sha, author_association: .author_association}'52gh pr diff <PR> --repo NVIDIA/TensorRT-Model-Connect53gh pr checks <PR> --repo NVIDIA/TensorRT-Model-Connect54```5556Use the paginated pull-files API when a PR is large enough that a summarized57file list may be incomplete. Fetch the exact PR head and create a detached58temporary worktree when local searches or tests are needed. Preserve the59user's active worktree and remove only the temporary worktree created for the60review.6162## Establish The Local Self-Review Baseline6364Inspect `git remote -v` and select the fetch remote whose URL resolves to65`NVIDIA/TensorRT-Model-Connect`. External forks normally name it `upstream`;66maintainer clones may name it `github` or `origin`. Never use a contributor67fork's `main` as the canonical base merely because its remote is named68`origin`. Fetch canonical `main`, then record the base ref and SHA, merge base,69local head SHA, branch name, and working-tree state.7071```bash72git remote -v73git fetch <canonical-remote> main74git branch --show-current75git rev-parse <canonical-remote>/main76git merge-base <canonical-remote>/main HEAD77git rev-parse HEAD78git status --short79git diff --stat <merge-base>80git diff --name-status <merge-base>81git diff <merge-base>82git ls-files --others --exclude-standard83git log --format=fuller <merge-base>..HEAD84```8586`git diff <merge-base>` includes committed, staged, and tracked unstaged87content. Inspect every intended untracked file separately because Git does not88include it in that diff. If the canonical remote is ambiguous, `HEAD` is the89canonical main branch, or intended files cannot be distinguished from unrelated90local work, report the limitation instead of guessing.9192Before reading implementation details, establish whether the linked issue's93problem still exists on current `main`. A long-lived PR may have been94superseded, narrowed, or made unnecessary by #1093 or a later merge. A proposed95abstraction with no current consumer does not inherit justification from an96obsolete issue.9798## Load The Current Rules99100Always read:101102- `AGENTS.md`103- `CONTRIBUTING.md`104- `.github/pull_request_template.md`105- the linked issue or discussion and material maintainer comments, when one is106 available107108Then read only the architecture guides relevant to the changed paths:109110- family or model work: `website/docs/architecture/ai-native-horizontal-scaling.md`,111 `website/docs/architecture/validation-design.md`, and112 `website/docs/extend/add-model-family.md`;113- Python build or discovery: `website/docs/architecture/build-pipeline.md`;114- native build: `website/docs/architecture/build-system.md`;115- loader, DSO, Task, or backend work:116 `website/docs/architecture/runtime-lifecycle.md` and117 `website/docs/architecture/runtime-plugins.md`;118- cross-layer ownership: `website/docs/architecture/units-and-ownership.md`.119120When reviewing the PR title, body, validation claims, or proposed contributor121reply, also read and apply `../write-git-messages/SKILL.md`.122123## Fast Review Funnel124125### 1. Reconcile Intent With Current Main126127Summarize the problem, observable exit criteria, non-goals, affected public128contracts, and claimed evidence. Compare these with the linked issue and the129current base. Flag stale paths, claims about already-existing APIs, obsolete130registries, or a solution that no longer has a concrete consumer.131132For a new checkpoint or model, inspect the authoritative model card, config,133tokenizer/preprocessor configuration, license, and exact pinned revision.134Confirm its real task and required input protocol; architectural similarity to135an existing family does not prove that the existing reference or validation136path exercises the checkpoint's product behavior.137138### 2. Classify The Diff Boundary139140Build a changed-path map before deep review:141142| Changed area | First question |143| --- | --- |144| `families/<family>/**` | Can this family be built, tested, changed, and reverted without a sibling edit? |145| more than one family | Is there a real multi-owner requirement, or a cross-family dependency/bulk migration? |146| `core/**` or public headers | Is this a narrow model-agnostic contract with concrete consumers? |147| `apps/**` or `examples/**` | Does it consume only public APIs and keep model semantics in the family? |148| `tools/**`, CI, or shared validation | Does it schedule generic mechanics without owning family policy or weakening evidence? |149| root dependencies/build files | Does one family now force coordination or dependency changes for every family? |150| media, weights, fixtures, generated files | Are source, license, attribution, and repository policy satisfied? |151152A normal family contribution should change only `families/<owner>/**`. A153shared Task contract may legitimately accompany the first family whose user154behavior cannot be represented by an existing Task API; a shared edit is a155review trigger, not an automatic violation.156157### 3. Check Architecture Ownership158159Verify these invariants from code, build files, tests, and data flow:160161- The family owns checkpoint identity, tasks/default, config, weights,162 topology, TensorRT graph, bundle-section semantics, runtime orchestration,163 bindings, preprocessing, postprocessing, dependencies, fixtures, manifests,164 thresholds, references, and oracles.165- A family does not import, include, link, load, inherit from, symlink to, or166 read implementation or validation artifacts owned by a sibling family.167- Similar model-specific code remains family-local. Do not recommend a shared168 helper merely to remove duplication.169- `support.py` is dependency-free apart from the support contract, uses exact170 identity matching, and produces exactly one owner or a clear error. It does171 not use broad prefixes, scores, priority, repository-name guesses, or172 first-match fallback.173- `model.py` exposes one plain `build(request, writer)` function, explicitly174 handles or rejects all request dimensions, and writes the selected task and175 backend without guessing.176- Core contains only model-agnostic discovery/loading, bounded bundle177 mechanics, public Build/Task/Engine contracts, stable primitives, and the178 explicit BYOK boundary. It contains no family switch, model tensor name,179 tokenizer policy, topology, threshold, dataset, reference logic, or180 family-specific default disguised as a generic API.181- Core owns safe bundle framing and bounded reads; each family owns its section182 names, schemas, and meaning. A second parser or new shared abstraction needs183 a current independent consumer and a single clearly owned contract.184- Runtime loads exactly the family and backend named by the bundle. Family185 pipelines use abstract Task and Engine APIs, do not link the concrete backend186 or loader, and do not retain references to temporary factory context.187- Applications, examples, benchmarks, and BYOK consume public APIs. Core,188 backend, and families never depend on application code.189- Generic family semantics do not branch on GPU, SM, CUDA, driver, or TensorRT190 version. A real family-local TensorRT custom plugin may be valid; expanding191 ad hoc CUDA/cuBLAS helper execution outside TensorRT or TVM-FFI is not.192- Shared dependencies are genuinely common. Family-only packages and versions193 stay in the owner `requirements.txt`, and one family job does not merge194 incompatible environments from several families.195196Read [references/manual-review-probes.md](references/manual-review-probes.md)197when any model, family, runtime, bundle, benchmark, validation, dependency, or198CI behavior changes. It covers semantic failures that path guards cannot199detect.200201### 4. Trace Behavioral Correctness202203Follow the changed path end to end rather than reviewing isolated functions:204205```text206checkpoint -> support resolution -> family build -> bundle207 -> exact family DSO -> Task call -> family-owned oracle208```209210Inspect relevant callers, consumers, configuration, tensor shapes/layouts,211weight names, special tokens/chat templates, resize/pad/mask behavior,212postprocessing, object lifetimes, failure propagation, and teardown. Compare213the native path with the official reference using identical semantic inputs.214215Do not accept parity between two implementations that share the same wrong216assumption. A writer-reader round trip is useful consistency evidence but is217not an independent format validator. Likewise, a test that compares only a218convenient subset of outputs does not validate omitted task semantics.219220### 5. Audit Validation Meaning221222- Tests must exercise the changed behavior and fail for the regression they223 claim to prevent.224- A requested E2E case must produce exactly one executed, non-skipped result.225 Missing, duplicate, skipped, or unintended cases fail closed; a zero-test226 pytest exit is not a pass.227- Oracles must cover the task's essential outputs. Examples include boxes and228 detection counts for detection, generated content for text, reference-relative229 image/video evidence, and temporal behavior when the task promises it.230- Reference and native inputs, tokenizer framing, build options, precision,231 and aggregation levels must be aligned before drawing a parity conclusion.232- Thresholds, expected values, oracle strength, and acceptance criteria must233 not be weakened to obtain green CI. If a test appears wrong, require human234 review of the evidence.235- Benchmark sides must time equivalent regions and keep shards, batches,236 requests, queries, samples, tokens, and artifacts as distinct accounting237 units.238- A family-only test does not prove a changed shared contract for all239 consumers. Scale evidence to the actual impact classification.240241### 6. Audit Contributor And Repository Compliance242243Check that:244245- the PR title is focused, imperative, Conventional Commit-style, and contains246 no banned terms;247- every commit introduced by the PR has a valid author-owned DCO sign-off;248- all pull-request template sections are complete, change categories match the249 actual diff, exactly one risk level is selected, and paths/claims describe250 the current architecture;251- validation lists exact commands, outcomes, tested head, checkpoint and252 dependency revisions, hardware/environment when relevant, and unrun paths;253- the contributor self-review checkbox is selected only after the contributor254 has actually reviewed the change;255- repository documentation, code comments, user-facing messages, and PR text256 are English except model data needed for multilingual validation;257- SPDX headers, third-party notices, asset entries, and redistribution rights258 are complete;259- the change remains focused and does not add compatibility paths, fallbacks,260 registries, speculative hooks, or unrelated cleanup.261262## Run Proportionate Checks263264In pull-request mode, run checks from the exact-head temporary worktree. In265local mode, run them from the reviewed checkout and report whether it was266clean. Start with the current lightweight commands from `CONTRIBUTING.md`:267268```bash269git diff --check <base-sha>...<head-sha>270PYTHONPATH=core/builder:apps/benchmark:. python3 -m tools.model_ci validate271PYTHONPATH=core/builder:apps/benchmark:. python3 tools/test_impact.py --validate272PYTHONPATH=core/builder:apps/benchmark:. python3 tools/test_impact.py \273 --base <base-sha> --head <head-sha>274PYTHONPATH=core/builder:apps/benchmark:. python3 -m pytest \275 tools/tests/test_architecture.py tools/tests/test_family_impact.py276```277278For a dirty local self-review, use `git diff --check <merge-base>` to include279tracked working-tree changes, inspect untracked files explicitly, and state280that impact selection covers the committed head unless explicit files were281supplied. Do not represent uncommitted content as reviewed by the `HEAD` SHA.282283Then run the smallest tests that directly exercise each changed contract and284affected family. Do not run downloaded contributor code with credentials or on285protected hardware. If dependencies, checkpoints, or target hardware are not286available, inspect the test logic and report the missing evidence instead of287claiming execution.288289Interpret CI carefully:290291- Public Community CI and protected premerge are different evidence tiers.292- A bridge dispatch is not a protected test pass.293- Only a passing `TRTMC Internal CI / Automated premerge gate` on the current294 head proves protected premerge for that head.295- A later push invalidates earlier head evidence. A base advance may also296 require a fresh exact-merge result.297- Green source or architecture checks do not prove TensorRT build, checkpoint298 inference, model parity, target-platform behavior, or performance.299300## Report Findings First301302For a maintainer review, return a concise review in this order:3033041. `Verdict: PASS | BLOCK | HUMAN REVIEW REQUIRED`, `Merge readiness: READY |305 NOT READY`, the recommended GitHub action (`Approve`, `Request changes`,306 `Comment`, or `Wait`), and exact base/head.3072. Findings ordered by severity. For each finding include:308 - `Blocking`, `High`, or `Medium` and a short title;309 - violated architecture rule or claimed behavior;310 - exact changed-file line evidence and the relevant caller/consumer;311 - affected family or shared blast radius;312 - the smallest correction or evidence that would resolve it.3133. A short architecture summary covering family ownership, shared neutrality,314 one-way application dependencies, and validation ownership.3154. Checks/evidence verified, followed by untested paths and residual risk.3165. A contributor-facing reply only when requested. Draft it in friendly,317 specific English; distinguish repository evolution from contributor error.318319For contributor self-review, use the same finding and evidence structure, but320replace merge authority with:3213221. `Verdict: PASS | BLOCK | HUMAN REVIEW REQUIRED`, `Submission readiness:323 READY TO MARK READY | READY TO OPEN DRAFT | KEEP DRAFT | NOT READY`, exact324 base/head, and whether the worktree is clean.3252. The next contributor action. Do not recommend `Approve` or `Request326 changes`, because contributors do not review their own PR in that role.3273. Whether the contributor can honestly select the **Contributor Self-Review**328 checkbox. Keep the detailed verdict, findings, exact head, and evidence in329 the review response; the PR template requires only the confirmation.330331Keep review verdict separate from merge readiness. A code/architecture `PASS`332may still be `NOT READY` while required exact-head CI, model proof, or human333approval is pending.334335Use `BLOCK` for an evidence-backed incorrect result, validation weakening,336public-contract defect, direct cross-family dependency, model semantics in337shared implementation, or other merge blocker. Use `HUMAN REVIEW REQUIRED`338when a material contract, consumer need, compatibility choice, or architecture339exception cannot be resolved from available evidence. Use `PASS` only when no340violation was found, and preserve its limits.341342Do not emit style-only Low findings. Consolidate repeated symptoms under one343root cause, distinguish facts from risks, and never invent a test result or344claim that CI covers an unexecuted path.