review-pr skill v2: dispatch gap rule, arch-constant FP fix, P5 timing error#1549
Open
zufayu wants to merge 2 commits into
Open
review-pr skill v2: dispatch gap rule, arch-constant FP fix, P5 timing error#1549zufayu wants to merge 2 commits into
zufayu wants to merge 2 commits into
Conversation
Contributor
🏷️ CI GuideRuns automatically on every eligible PR before approval:
Heavy model tests:
|
junhaha666
approved these changes
Jul 13, 2026
Contributor
Author
|
Merge button dropdown → "Merge without waiting for requirements to be met". Thanks! @valarLip |
…g error Key changes based on 191-PR test sweep (88 aiter + 93 ATOM): - B6 (new): "New dispatch value not handled by all paths, no warning" Highest-frequency finding (~18% of PRs). Covers: new dtype/arch/flag/ getattr attribute added to a multi-way dispatch where some branches silently fall through to wrong behavior with no assert/warning. FP self-check included (upstream assert/isinstance guard → skip). Real examples: ATOM#1548 (getattr silent zero), ATOM#841 (unmerged aiter kwarg). - C3 (new): "New GPU arch string or arch-specific constant hardcoded" Extended beyond arch strings to cover magic constants tied to specific model configs (e.g., hardcoded 576 for MLA kv_lora_rank+qk_rope_head_dim). FP self-check front-loaded: search unchanged lines first; if constant already exists → skip (pre-existing style). Real example: ATOM#860 _bind_kv_cache_to_modules() hardcoded 576. - P5 (new): "Benchmark timing excludes one-time setup cost" Covers: shuffle_weight, first-call JIT compile excluded from timing window → claimed speedup is actually a regression when setup cost is included. - Step 3 classification: wired B6/P5 into trigger lines so new constexpr/routing-flag PRs and perf PRs auto-prompt the right checks. New aiter API usage PRs trigger B6 (new kwarg unhandled by all branches?). - Step 8 output format: findings now require three parts (Problem + Impact + Action verb). "Author must" / "Reviewer should ask" required; no verb = do not include in output. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…vs.py - B5 restructured into a 5-row parametric table (param-discard, param-removed, attr-missing, dispatch-silent, rename) — aligned with aiter's B6 family; ATOM-specific attr-missing sub-type added (getattr silent-zero fallback, ATOM#1548 real example) - G1b: blocking queue.get() without timeout in production serving code; ATOM#789 call_soon_threadsafe noted as correct pattern (not G1b) - D1b: Python-side UnboundLocalError from conditional variable assignment (ATOM#860 real example) - C3: add capability guard exemption — arch string in dedicated _detect_*() helper is not centralized dispatch hardcoding (ATOM#749) - HK5: updated to "register in atom/envs.py AND document in README" (ATOM#749 finding: ATOM_NATIVE_TRITON_ATTN not in envs.py) - Step 3 classification: new trigger entries for G1b and D1b Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
6645549 to
19548b6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Second iteration of the
review-prskill, based on a 191-PR test sweep (88 aiter + 93 ATOM open PRs). Key findings from that sweep drove all rule changes here.New rules
B6 — New dispatch value not handled by all paths (highest-frequency finding, ~18% of PRs)
When a PR adds a new dtype/arch/flag/
getattrattribute key to a multi-way dispatch, every reachable branch must handle it or assert/warn on unsupported combos. Includes FP self-check (upstream assert/isinstance guard → skip).getattr(self.args,'n_shared_experts',0)silent zero), ATOM#841 (ATOM calls unmerged aiter kwarg → TypeError at dispatch)C3 — New GPU arch string or arch-specific constant hardcoded in dispatch
Extended beyond arch strings to cover magic constants tied to specific model configs. FP self-check front-loaded: search unchanged lines first; if constant already exists → skip (pre-existing style).
_bind_kv_cache_to_modules()hardcodes576for MLAkv_lora_rank + qk_rope_head_dim— breaks any MLA variant where this sum ≠ 576P5 — Benchmark timing excludes one-time setup cost
Distinct from P1 (missing numbers). Covers cases where setup steps (shuffle_weight, JIT compile) are excluded from the timing window — making a regression look like a speedup.
Improved rules
B5 real examples updated: added ATOM#860
needs_independent_noisedropped inprefill_forward— sampler called without it, first token uses wrong sampling mode for sequences requiring independent Gaussian noise.C3 FP self-check front-loaded: moved before the trigger condition so agents verify pre-existing style before firing.
Step 3 classification: wired B6/P5 into trigger lines — new constexpr/routing-flag PRs and perf PRs now auto-prompt the relevant checks. New aiter API usage PRs trigger B6 (new kwarg unhandled by all ATOM dispatch branches?).
Step 8 output format: findings now require three parts — Problem + Impact + Action verb ("Author must" / "Reviewer should ask"). Findings without an action verb are not included in output.
Test plan
🤖 Generated with Claude Code