grill之后怎么开工:PRD落规格 → 垂直拆活 → TDD跑通第一个issue
上篇用 grill-me 把盘前简报 MVP 问清楚了。Cursor已经给了我一份设计摘要:CLI、run.json契约、mock/yfinance、单脚本不接 LangGraph、交差三条(demo + eval + 契约)。
这篇主要展示:PRD 落规格 → 垂直拆活 → TDD 跑通第一个 issue(对应 to-prd / to-issues / implement)。
1. 这三个 skill 各自干什么
| skill | 干啥 |
|---|---|
| to-prd | 把 grill 摘要收成正式 PRD(范围、契约、测在哪、范围外) |
| to-issues | 拆成能单独验收的垂直任务 |
| implement | 按一张 issue TDD:先红后绿 |
和普通帮我根据刚才的讨论写代码不一样:先把规格写清楚,再拆成几件能单独交差的活,然后一件一件做——中间每步你都能点头或改口。
2. to-prd:把摘要收成正式 PRD
我:
Cursor 先多问了两件事
- 测在哪一层(seam)——通俗说:验收主要看啥?
我们认的是:跑 CLI → 有合格的run.json+report.md,不按内部模块拆测试。
因为 MVP 交差就是看「跑一条命令,能不能产出合格文件」。从 CLI 出口测,等于整条链路一起验;内部怎么改都行,只要最后产物对、契约稳。 - PRD 写哪——选了本地
.scratch/premarket-briefing-mvp/PRD.md
我:
PRD 落盘后,我又补了一句
我:
Cursor进行修改:
字段名、CLI、JSON 契约仍然会是英文的,然后PRD 会很长(用户故事特别多),那是 skill 模板习惯。实现时盯决策 / 测试 / 范围外这3点 即可。
3. to-issues:拆成能单独验收的任务
我:
别横切就是别按模块一层层写,先用一个 issue 把 schema、拉取、CLI 串起来,打通最小链路,跑命令立刻能看到结果。
Cursor先列了一版
确认后的 6 张任务大致是:
| # | 任务 | 做完能验什么 |
|---|---|---|
| 01 | 手跑空壳简报 | CLI 落盘run.json+report.md,meta 齐全;超 10 只/空参失败 |
| 02 | Mock 填满个股扫描 | 异动/事件/新闻 +source.tool+pipeline_trace |
| 03 | yfinance + fallback | 真拉/回退 mock 留痕 |
| 04 | watch_today + 三条 flags | 关注点有依据、规则会打标 |
| 05 | hypothesis + 宏观一句 | 报告级核查、无 conclusion |
| 06 | demo + 契约/golden eval | 交差门槛全绿 |
Cursor展示依赖简图并让我确认:
我:
Cursor生成文件
4. implement:只干 01,先红后绿
我:
为啥先红再写:用失败的测试先钉死做成什么样,再写最少代码让它绿——范围不容易被 AI 撑爆,也不会先写一堆再硬凑测试。
红了 → 再写最小实现
Cursor会先报红(或说明在跑第一条失败用例):
然后补最小代码,直到变绿:
Issue 收口时 Cursor 会写 Review(做了啥 / 没做啥):
要点:
python run.py --symbols AAPL,MSFT --question "..." --out runs/能出run.json(含 meta)和report.md(问题 + 股票列表)- 护栏:>10 只 / 空 symbols / 空白 question → 非 0 退出
- pytest 5 绿,issue 标
done,并有 commit - Review 里特意写清楚——校验非法股票代码属于 PRD 里更宽的口径,本票不做,留给后面的任务。这是在卡范围,避免 AI 顺手把后面的活也写了。
下一步才是 02,不是一次 implement 写完全部 PRD。
5. 最近学习 mattpocock/skills 的一点感受
最近花了一定时间在mattpocock/skills的学习上,才算摸清楚一条还算顺手的 AI 工作流:用 grill-me(或 grill-with-doc)把要做啥问清楚 → to-prd 落成 PRD → to-issues 拆成几件能单独交差的活 → implement 一件一件做,先红后绿。
上篇 + 这篇就是这条链路的演示实录。skill 也不是点了就自动做完,该确认还是得自己点头,PRD 有时还会又臭又长——但比一上来让 AI 把整个项目写完靠谱得多。
模型越强,这几步越省事;技能也不用囤一堆,把这套跑顺通常就够用。以后要是做带页面的全栈,再塞一个原型或 UI 技能就行了。
