Skip to content
Back to skills

Rust Lang Rust Pre Push

ASecurity

Pre-push checklist for rust-lang/rust PRs — catches naming, verification, description, and convention issues before they reach reviewers

  • 5 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 2, 2026
developmentrustgobashgit

Security analysis

A100/100

Scanned September 2, 2026

npx -y skills add kookr-ai/kookr --skill rust-lang-rust-pre-push --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Rust Lang Rust Pre Push?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Rust Lang Rust Pre Push
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kookr-ai-rust-lang-rust-pre-push/badge)](https://www.skillsdirectory.com/skills/kookr-ai-rust-lang-rust-pre-push)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: rust-lang-rust-pre-push
description: Pre-push checklist for rust-lang/rust PRs — catches naming, verification, description, and convention issues before they reach reviewers
keywords: rust-lang, rust compiler, pre-push, push, before push, submit PR, rust PR, regression test
related: rust-lang-rust-tests, pre-pr-review, oss-repo-recon
---

# Pre-Push Checklist for rust-lang/rust

Run this before every `git push` to rust-lang/rust. Every item here was learned from actual reviewer pushback or CI failures.

## 1. Local Verification

**Run the test with `rustc +nightly` before committing.** Issue reproducers go stale.

```bash
# build-pass / check-pass: must exit 0
rustc +nightly [compile-flags] <test-file>.rs 2>&1; echo "Exit: $?"

# Error tests: verify the error matches your .stderr / //~ annotations
rustc +nightly <test-file>.rs 2>&1
```

If the reproducer doesn't behave as the issue describes, investigate. Don't submit blind.

## 2. Test File Naming

Scan the test filename. Reject if it matches these patterns:

- `issue-NNNNN.rs` — just an issue number
- `ice-issue-NNNNN.rs` — issue number with generic prefix
- Anything where the issue number is the only descriptive content

The name should describe what the test exercises:

```
# Bad
ice-issue-149035.rs

# Good
generic-const-exprs-mono-collect-ice-149035.rs
```

## 3. Test Header

Check the `//!` header:

- [ ] First line describes what the test exercises (not "Regression test for...")
- [ ] Issue link uses full URL in angle brackets: `<https://github.com/rust-lang/rust/issues/NNNNN>`
- [ ] No `#NNN` shorthand issue references (these get flagged by rustbot in commits)

## 4. Attributes

Check for unnecessary attributes:

- [ ] No `#![allow(incomplete_features)]` — compiletest injects `-A incomplete_features`
- [ ] No `#![allow(dead_code)]` or `#![allow(unused)]` — compiletest injects `-A unused` for pass tests
- [ ] `#![feature(...)]` comes before any remaining `#![allow(...)]`

## 5. Directives

- [ ] Correct test type: `build-pass` only if ICE was in codegen/linking; `check-pass` if in analysis
- [ ] No parenthetical internal reasoning on directives (e.g., `//@ check-pass (ICE was in wfcheck, not codegen)` — remove the parenthetical)
- [ ] Directive comments explain why the directive is needed, not why you chose it over alternatives

## 6. Commit Message

```bash
git log --oneline -1
```

- [ ] No `#NNNNN` issue references in the commit message body
- [ ] No `Closes`, `Fixes`, or `Resolves` keywords — those go in PR body only

## 7. PR Title

The title should describe what the test exercises, not just reference an issue number:

```
# Bad
Add regression test for #149035

# Good
Add regression test for mono item collection ICE with generic_const_exprs
```

## 8. PR Description

Read it aloud. Check for LLM tells:

- [ ] No backtick-heavy formatting in prose
- [ ] No parenthetical explanations after every term
- [ ] No "this specific scenario", "the test exercises the exact reproducer"
- [ ] Uses contractions naturally ("didn't", "wasn't", not "was not", "did not")
- [ ] No bullet-point-heavy structure for simple descriptions
- [ ] Short — 2-4 sentences max for a regression test PR

## 9. .stderr Files (if applicable)

- [ ] Generated from actual `rustc +nightly` output, not hand-crafted
- [ ] Line numbers match the final test file (headers shift lines)
- [ ] `$DIR/filename.rs` matches the actual filename
- [ ] `LL |` replaces line numbers in source display
- [ ] Warnings suppressed by compiletest (`incomplete_features`, `unused`) are NOT in the .stderr

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.