Skip to content

Commit 0b2712a

Browse files
committed
chore(prompt): refine pr-interface-review based on Copilot feedback [no-ci]
1 parent ebabcab commit 0b2712a

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

.github/prompts/pr-interface-review.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ This review is **strictly about the public surface** — types, classes, functio
1414
- Files under `types/`, `models/`, `schemas/`, `requests/`, `responses/`, `dto/`, `api/`, `proto/`, `openapi/`, `*.d.ts`.
1515
- Generated SDK files (Fern, OpenAPI Generator, protoc, etc.) — these are public surface even when auto-generated.
1616
- Any file whose path or name suggests it defines a contract (`*_request.py`, `*Params`, `*Response`, `I*.ts`, `*.proto`).
17-
3. **Ignore** lockfiles, vendored code, fixtures, internal helpers, and tests — except note when a test was *deleted* (see Step 5).
17+
3. **Ignore** lockfiles, vendored code, fixtures, internal helpers, and tests — except note when a test was *added*, *deleted*, or *modified to remove a case* (see Step 5).
1818
4. If the repo has compat-tracking docs (e.g. `AGENTS.md`, `CHANGELOG.md`, `MIGRATION.md`, `BREAKING.md`, `.fernignore`, codeowner files for "frozen" generated files), read them. They tell you what the maintainers consider stable, what shims already exist, and what's deliberately frozen.
1919

2020
## Step 2 — Extract every interface change
@@ -40,13 +40,13 @@ Assign each interface change to one of these tiers. Be strict; when in doubt, es
4040
|**3** | **Pure rename with full alias** | Identifier renamed, but the old name is preserved as an alias/re-export with identity preserved (`old is new` holds, or runtime type identity is preserved). |
4141
| 🔍 **4** | **Type tightening / silent risk** | A type was narrowed (e.g. `str` → enum), a default removed, a docstring contract changed, or behavior subtly shifted. Compiles fine; may surprise users. |
4242
|**5** | **Purely additive** | New optional field, new optional parameter with default, new method, new exported type. No existing caller can break. |
43-
| 🆕 **6** | **Brand-new public type** | Entirely new type/class/symbol with no predecessor. Only breaks callers who happened to define a same-named local symbol. |
43+
| 🆕 **6** | **Brand-new public type** | Entirely new type/class/symbol with no predecessor. Only breaks callers via name collision — same-named local symbol, glob imports (`from X import *`, `use X::*`), Go dot-imports, or TypeScript `import * as` destructuring. |
4444

4545
## Step 4 — For each change, document compat & gaps
4646

4747
Use this template per interface:
4848

49-
```
49+
```markdown
5050
### N. <FullyQualifiedName>
5151
**File:** `path/to/file.ext`
5252
**Tier:** <emoji + number>

0 commit comments

Comments
 (0)