Skip to content

chore: add Copilot prompt for PR interface review [no-ci]#329

Merged
lukeocodes merged 1 commit into
mainfrom
chore/copilot-pr-review-prompt
May 6, 2026
Merged

chore: add Copilot prompt for PR interface review [no-ci]#329
lukeocodes merged 1 commit into
mainfrom
chore/copilot-pr-review-prompt

Conversation

@lukeocodes

Copy link
Copy Markdown
Member

Adds .github/prompts/pr-interface-review.md — a Copilot prompt file for systematic per-interface review of PRs that touch the public surface (types, schemas, exported symbols, wire formats, CLI flags).

The prompt classifies every signature change into one of six tiers (🚨 breaking through 🆕 brand-new), flags compat measures already taken, and calls out gaps that remain. Specifically catches subtle failure modes — class→alias collapse, read-side vs write-side compat, default-value flips, enum widening, async/sync flips, generic variance changes.

Canonical source and rollout context: deepgram/dx-stack.

[no-ci] — docs-only addition.

Copilot AI review requested due to automatic review settings May 6, 2026 10:25

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a GitHub Copilot prompt file intended to standardize “public interface / contract impact” reviews for pull requests that modify exported APIs, schemas, wire formats, or CLI/config flags.

Changes:

  • Added a new prompt at .github/prompts/pr-interface-review.md describing a step-by-step interface/contract review process.
  • Introduced a 6-tier classification rubric for interface changes (breaking → brand-new) plus a reporting/output template.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Files under `types/`, `models/`, `schemas/`, `requests/`, `responses/`, `dto/`, `api/`, `proto/`, `openapi/`, `*.d.ts`.
- Generated SDK files (Fern, OpenAPI Generator, protoc, etc.) — these are public surface even when auto-generated.
- Any file whose path or name suggests it defines a contract (`*_request.py`, `*Params`, `*Response`, `I*.ts`, `*.proto`).
3. **Ignore** lockfiles, vendored code, fixtures, internal helpers, and tests — except note when a test was *deleted* (see Step 5).

Use this template per interface:

```
@lukeocodes lukeocodes merged commit 9a36e94 into main May 6, 2026
6 checks passed
lukeocodes added a commit to deepgram/deepgram-python-sdk that referenced this pull request May 6, 2026
Refines `.github/prompts/pr-interface-review.md` based on Copilot review
feedback raised during the [original
rollout](deepgram/dx-stack#3):

1. **Step 1 / Step 5 consistency** — Step 1 said *"ignore tests except
deleted"* but Step 5 also requires reviewing **added** tests that prove
compat shims. Broadened Step 1 to cover added, deleted, and
modified-to-remove tests. (raised on
[`deepgram/deepgram-go-sdk#329`](deepgram/deepgram-go-sdk#329))

2. **Tier 6 broadened** — original wording only mentioned same-named
local symbols as collision vectors. Now also covers glob/namespace
imports (Python `from X import *`, Rust `use X::*`, Go dot-imports,
TypeScript `import * as` destructuring). (raised on
[`deepgram/deepgram-js-sdk#495`](deepgram/deepgram-js-sdk#495))

3. **Fence language** — the template fenced block now declares
`markdown` to satisfy markdownlint MD040. (raised on
[`deepgram/deepgram-go-sdk#329`](deepgram/deepgram-go-sdk#329))

Canonical source:
[`deepgram/dx-stack`](https://github.com/deepgram/dx-stack/blob/main/.github/prompts/pr-interface-review.md).
Rollout context:
[`docs/copilot-prompts.md`](https://github.com/deepgram/dx-stack/blob/main/docs/copilot-prompts.md).

`[no-ci]` — docs-only refinement to a previously-merged file.
lukeocodes added a commit to deepgram/mcp that referenced this pull request May 6, 2026
Refines `.github/prompts/pr-interface-review.md` based on Copilot review
feedback raised during the [original
rollout](deepgram/dx-stack#3):

1. **Step 1 / Step 5 consistency** — Step 1 said *"ignore tests except
deleted"* but Step 5 also requires reviewing **added** tests that prove
compat shims. Broadened Step 1 to cover added, deleted, and
modified-to-remove tests. (raised on
[`deepgram/deepgram-go-sdk#329`](deepgram/deepgram-go-sdk#329))

2. **Tier 6 broadened** — original wording only mentioned same-named
local symbols as collision vectors. Now also covers glob/namespace
imports (Python `from X import *`, Rust `use X::*`, Go dot-imports,
TypeScript `import * as` destructuring). (raised on
[`deepgram/deepgram-js-sdk#495`](deepgram/deepgram-js-sdk#495))

3. **Fence language** — the template fenced block now declares
`markdown` to satisfy markdownlint MD040. (raised on
[`deepgram/deepgram-go-sdk#329`](deepgram/deepgram-go-sdk#329))

Canonical source:
[`deepgram/dx-stack`](https://github.com/deepgram/dx-stack/blob/main/.github/prompts/pr-interface-review.md).
Rollout context:
[`docs/copilot-prompts.md`](https://github.com/deepgram/dx-stack/blob/main/docs/copilot-prompts.md).

`[no-ci]` — docs-only refinement to a previously-merged file.
lukeocodes added a commit to deepgram/cli that referenced this pull request May 6, 2026
Refines `.github/prompts/pr-interface-review.md` based on Copilot review
feedback raised during the [original
rollout](deepgram/dx-stack#3):

1. **Step 1 / Step 5 consistency** — Step 1 said *"ignore tests except
deleted"* but Step 5 also requires reviewing **added** tests that prove
compat shims. Broadened Step 1 to cover added, deleted, and
modified-to-remove tests. (raised on
[`deepgram/deepgram-go-sdk#329`](deepgram/deepgram-go-sdk#329))

2. **Tier 6 broadened** — original wording only mentioned same-named
local symbols as collision vectors. Now also covers glob/namespace
imports (Python `from X import *`, Rust `use X::*`, Go dot-imports,
TypeScript `import * as` destructuring). (raised on
[`deepgram/deepgram-js-sdk#495`](deepgram/deepgram-js-sdk#495))

3. **Fence language** — the template fenced block now declares
`markdown` to satisfy markdownlint MD040. (raised on
[`deepgram/deepgram-go-sdk#329`](deepgram/deepgram-go-sdk#329))

Canonical source:
[`deepgram/dx-stack`](https://github.com/deepgram/dx-stack/blob/main/.github/prompts/pr-interface-review.md).
Rollout context:
[`docs/copilot-prompts.md`](https://github.com/deepgram/dx-stack/blob/main/docs/copilot-prompts.md).

`[no-ci]` — docs-only refinement to a previously-merged file.
lukeocodes added a commit to deepgram/agent that referenced this pull request May 6, 2026
Refines `.github/prompts/pr-interface-review.md` based on Copilot review
feedback raised during the [original
rollout](deepgram/dx-stack#3):

1. **Step 1 / Step 5 consistency** — Step 1 said *"ignore tests except
deleted"* but Step 5 also requires reviewing **added** tests that prove
compat shims. Broadened Step 1 to cover added, deleted, and
modified-to-remove tests. (raised on
[`deepgram/deepgram-go-sdk#329`](deepgram/deepgram-go-sdk#329))

2. **Tier 6 broadened** — original wording only mentioned same-named
local symbols as collision vectors. Now also covers glob/namespace
imports (Python `from X import *`, Rust `use X::*`, Go dot-imports,
TypeScript `import * as` destructuring). (raised on
[`deepgram/deepgram-js-sdk#495`](deepgram/deepgram-js-sdk#495))

3. **Fence language** — the template fenced block now declares
`markdown` to satisfy markdownlint MD040. (raised on
[`deepgram/deepgram-go-sdk#329`](deepgram/deepgram-go-sdk#329))

Canonical source:
[`deepgram/dx-stack`](https://github.com/deepgram/dx-stack/blob/main/.github/prompts/pr-interface-review.md).
Rollout context:
[`docs/copilot-prompts.md`](https://github.com/deepgram/dx-stack/blob/main/docs/copilot-prompts.md).

`[no-ci]` — docs-only refinement to a previously-merged file.
lukeocodes added a commit to deepgram/deepgram-java-sdk that referenced this pull request May 6, 2026
Refines `.github/prompts/pr-interface-review.md` based on Copilot review
feedback raised during the [original
rollout](deepgram/dx-stack#3):

1. **Step 1 / Step 5 consistency** — Step 1 said *"ignore tests except
deleted"* but Step 5 also requires reviewing **added** tests that prove
compat shims. Broadened Step 1 to cover added, deleted, and
modified-to-remove tests. (raised on
[`deepgram/deepgram-go-sdk#329`](deepgram/deepgram-go-sdk#329))

2. **Tier 6 broadened** — original wording only mentioned same-named
local symbols as collision vectors. Now also covers glob/namespace
imports (Python `from X import *`, Rust `use X::*`, Go dot-imports,
TypeScript `import * as` destructuring). (raised on
[`deepgram/deepgram-js-sdk#495`](deepgram/deepgram-js-sdk#495))

3. **Fence language** — the template fenced block now declares
`markdown` to satisfy markdownlint MD040. (raised on
[`deepgram/deepgram-go-sdk#329`](deepgram/deepgram-go-sdk#329))

Canonical source:
[`deepgram/dx-stack`](https://github.com/deepgram/dx-stack/blob/main/.github/prompts/pr-interface-review.md).
Rollout context:
[`docs/copilot-prompts.md`](https://github.com/deepgram/dx-stack/blob/main/docs/copilot-prompts.md).

`[no-ci]` — docs-only refinement to a previously-merged file.
lukeocodes added a commit to deepgram/deepgram-rust-sdk that referenced this pull request May 6, 2026
Refines `.github/prompts/pr-interface-review.md` based on Copilot review
feedback raised during the [original
rollout](deepgram/dx-stack#3):

1. **Step 1 / Step 5 consistency** — Step 1 said *"ignore tests except
deleted"* but Step 5 also requires reviewing **added** tests that prove
compat shims. Broadened Step 1 to cover added, deleted, and
modified-to-remove tests. (raised on
[`deepgram/deepgram-go-sdk#329`](deepgram/deepgram-go-sdk#329))

2. **Tier 6 broadened** — original wording only mentioned same-named
local symbols as collision vectors. Now also covers glob/namespace
imports (Python `from X import *`, Rust `use X::*`, Go dot-imports,
TypeScript `import * as` destructuring). (raised on
[`deepgram/deepgram-js-sdk#495`](deepgram/deepgram-js-sdk#495))

3. **Fence language** — the template fenced block now declares
`markdown` to satisfy markdownlint MD040. (raised on
[`deepgram/deepgram-go-sdk#329`](deepgram/deepgram-go-sdk#329))

Canonical source:
[`deepgram/dx-stack`](https://github.com/deepgram/dx-stack/blob/main/.github/prompts/pr-interface-review.md).
Rollout context:
[`docs/copilot-prompts.md`](https://github.com/deepgram/dx-stack/blob/main/docs/copilot-prompts.md).

`[no-ci]` — docs-only refinement to a previously-merged file.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants