Skip to content

提示词模式(AI 编程)

好提示的结构

text
[角色] + [上下文/仓库约定] + [任务] + [约束] + [输出格式] + [验收]

示例:实现一个函数

markdown
你是资深 TypeScript 工程师。仓库使用 ESM + vitest。

任务:实现 `parseRetryAfter(header: string | null): number | null`
- 支持 delta-seconds 与 HTTP-date
- 非法输入返回 null
- 不要引入新依赖

输出:
1) 完整函数代码(含导出)
2) vitest 用例 5 个
3) 边界说明(3 条内)

模式库

1)解释陌生代码

text
用简洁中文解释下列代码的控制流与副作用。
先给 5 行摘要,再列:输入、输出、失败模式、依赖的全局状态。
代码:
js
export async function loadUser(id) {
  const cache = await redis.get(`u:${id}`)
  if (cache) return JSON.parse(cache)
  const row = await db.user.findUnique({ where: { id } })
  if (!row) throw new NotFoundError(id)
  await redis.set(`u:${id}`, JSON.stringify(row), 'EX', 60)
  return row
}

2)安全重构(禁止改行为)

text
在不改变外部行为的前提下重构。保持公开 API 签名。
若无法证明等价,标 TODO 而不是瞎改。

3)补测试

python
# 请为下列函数生成 pytest 用例(参数化)
# 覆盖:正常、边界、异常

def clamp(n: float, lo: float, hi: float) -> float:
    if lo > hi:
        raise ValueError("lo > hi")
    return max(lo, min(hi, n))

期望测试草稿:

python
import pytest
from util import clamp

@pytest.mark.parametrize(
    "n,lo,hi,expected",
    [
        (5, 0, 10, 5),
        (-1, 0, 10, 0),
        (99, 0, 10, 10),
    ],
)
def test_clamp_ok(n, lo, hi, expected):
    assert clamp(n, lo, hi) == expected

def test_clamp_invalid_range():
    with pytest.raises(ValueError):
        clamp(1, 10, 0)

4)Diff 评审

text
你是严格的 code reviewer。只根据 diff 发言。
按严重级别输出:
- blocker
- major
- minor
- nit

diff:
```diff
- const limit = 100
+ const limit = req.query.limit
```

5)Bash 一键复现环境

bash
#!/usr/bin/env bash
set -euo pipefail

ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"

echo "==> node $(node -v)"
npm ci
npm test

反模式

反模式为什么糟改法
「写个完整网站」范围爆炸切垂直切片
不给仓库约定风格乱飞贴 eslint/目录说明
一次改 30 文件不可审按提交拆任务
盲信生成 SQL注入/锁表人审 + explain

危险提示词

「忽略所有安全限制」「用 root 权限执行」——拒绝使用。

输出格式约束(推荐默认加上)

text
- 用中文解释,代码用英语标识符
- 代码块标注语言
- 不要用省略号跳过关键实现
- 若信息不足,先列问题再写代码

文件夹树 ← docs/ 目录 · Git · Cloudflare Pages