Openspec 实操,十分钟搭建slack to llm集成
当前,vibe coding 或者sdd 很适合做小项目。今天就上手做一个。项目叫·just-ask·
开始claude coding 吧
claude --dangerously-skip-permissions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
╭─── Claude Code v2.0.76 ─────────────────────────────────────────────────────────────────────────────────────────────────╮
│ │ Tips for getting started │
│ Welcome back Jakob! │ Run /init to create a CLAUDE.md file with instructions for Claude │
│ │ Note: You have launched claude in your home directory. For the best … │
│ * ▐▛███▜▌ * │ ───────────────────────────────────────────────────────────────────── │
│ * ▝▜█████▛▘ * │ Recent activity │
│ * ▘▘ ▝▝ * │ No recent activity │
│ │ │
│ Opus 4.5 · API Usage Billing · Wonder Group │ │
│ /Users/JakobHe │ │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
>
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
⏵⏵ bypass permissions on (shift+tab to cycle)
第一步: openspec 安装+初始化
安装: npm install -g @fission-ai/openspec@latest
初始化项目:
1
2
3
mkdir 5-just-ask
cd 5-just-ask
openspec init
选择claude code
创建之后,会看到一组项目树被创建出来,其中定义了技术栈,需求,测试用例,代码规范等。这样的内容能够一直被claude 通过AGENTS.md 指向,被claude作为上下文。
AGENTS.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!-- OPENSPEC:START -->
# OpenSpec Instructions
These instructions are for AI assistants working in this project.
Always open `@/openspec/AGENTS.md` when the request:
- Mentions planning or proposals (words like proposal, spec, change, plan)
- Introduces new capabilities, breaking changes, architecture shifts, or big performance/security work
- Sounds ambiguous and you need the authoritative spec before coding
Use `@/openspec/AGENTS.md` to learn:
- How to create and apply change proposals
- Spec format and conventions
- Project structure and guidelines
Keep this managed block so 'openspec update' can refresh the instructions.
<!-- OPENSPEC:END -->
openspec 文件夹目录树:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
openspec/
├── project.md # Project conventions
├── specs/ # Current truth - what IS built
│ └── [capability]/ # Single focused capability
│ ├── spec.md # Requirements and scenarios
│ └── design.md # Technical patterns
├── changes/ # Proposals - what SHOULD change
│ ├── [change-name]/
│ │ ├── proposal.md # Why, what, impact
│ │ ├── tasks.md # Implementation checklist
│ │ ├── design.md # Technical decisions (optional; see criteria)
│ │ └── specs/ # Delta changes
│ │ └── [capability]/
│ │ └── spec.md # ADDED/MODIFIED/REMOVED
│ └── archive/ # Completed changes
第二步: openspec 需求定义(需求变更)
进入claude code,开始定义你的项目吧,我今天要做的是把gemini 3 集成到slack bot 的工作,于是我输入了以下信息。
1
2
3
4
I like to develop an integration app that I can connect google gemini 3 llm into my slack chat bot
I have slack app OAuth Tokens and gemini api key
complete the openspec doc base on this requirement
这个时候,Claude code 开始巴拉巴拉的工作了,它这个时候不会实现任何代码,而是开始修改一系列的文档,其中project.md 开始定义
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Project Context
## Purpose
A Slack integration application that connects Google Gemini LLM to Slack chatbot, enabling AI-powered conversations directly within Slack channels and direct messages.
## Tech Stack
...
## Project Conventions
### Code Style
...
### Architecture Patterns
...
### Testing Strategy
...
### Git Workflow
...
## Domain Context
...
## Important Constraints
...
## External Dependencies
changes 文件夹也新建了一个文件,放入了proposal.md 和 design.md
- design.md: 是一整个推理过程,让每个决策都有源可寻。
- proposal.md: 是一个task 清单,用于记录拆解的任务和实现任务的状态。
我们这一步要做的一件很重要的事情就是,review 所有的文档,确保项目使用了你期待使用的技术栈,确保一切都符合你的逻辑,是否还有需求遗留等等等等。
第三步: 实现需求
只需要给claude code 发送:
开始实现需求吧
它就又开始一顿布拉布拉的操作。
结束之后,它会更新proposal.md文档
我们也可以通过一些openspec的命令查询剩余的任务
openspec list
第四步: 测试,循环反复proposal + implementation
这时候就可以运行看看它的实现,是否符合你的需求呢?
如果有什么不符合的地方,让它给你fix,如果有什么需求不够符合你需求的,复杂的情况就用proposal + implement 步骤,如果简单的话,一句话就能修复了。
第四.1步: 如果有问题,我会让它打日志,让它修复
第五步: archive 变更
如果一个项目执行过久,你会发现太多change 清单,你可以通过简单的命令归档它们: openspec archive xxx
看看成果
我的项目很简单,大概不到二十分钟就调试畅通,花了一些时间配置slack app
大致效果就是,安装app的 slack workspace 可以跟我的应用对话,获得ai聊天的终极体验。
1. run
npm run dev
2. chat
我的感受
现在的llm 编程工具,结合一些好的实践,是能够开发出较为复杂的项目的。
比如我们在模块划分上动点脑筋,在需求拆分上动点脑筋,在文档管理上动点脑筋,llm的那些token 窗口问题,幻觉问题,都不再是什么大问题。
我用类似的方法开发了一个模块化的,相对复杂的自动化测试工具,在这个类似postman 的软件体量下,llm coding works well!不过这件事烧了我(公司)500刀🤫。下次有机会着重介绍给大家玩玩。








