
## Trigger

About to decide whether to take on a code change — a bug fix, a feature
addition, a refactor, an external contribution. The decision is "should
I write code for this?", not "how should I write the code?".

## Fix

Walk the 5 gates in order. Stop at the first failure.

| # | Gate | The question |
|---|---|---|
| 0 | **Eligibility** | Is this in-scope for the project / contract / authorization I have? |
| 1 | **Collision** | Is someone else already doing this? Is there an open PR / WIP issue? |
| 2 | **Reality** | Does the problem actually exist as described? Can I reproduce it? |
| 3 | **Clarity** | Are the requirements unambiguous? Will I know I'm done? |
| 4 | **Scope** | Does the proposed solution fit in one focused session, or am I about to do a creeping refactor? |

Reject as early as possible. The cheapest rejection is at Gate 0 (a
quick read of the project's contract), before any code is opened. The
most expensive is at Gate 4 (you've already started coding and
discover scope is bigger than expected).

**Core principle: 宁可漏掉好改动，不要做坏改动.** Better to miss a
good change than to start a bad one.

## Reuse Rule

- **Load when**: picking up a new issue, deciding whether to refactor,
  evaluating an external contribution to merge, choosing what to do
  next in a coding session.
- **Do not load when**: you're already mid-task — gates apply
  before-code, not during. Mid-task scope creep gets caught by the
  pre-push-quality-gate's Change Hygiene step, not here.
