项目实操踩坑记录
agent模式下,没有能按照openspec的规范以及feature-development规范。以及很少主动调用opsx的命令。需要一个rules来约束?
需要一个skills,快速了解项目,知道环境变量、docker、git、任务情况
有时会调用cat,而不是内置工具write
不会默认采用opsx
在后台启动了服务,但是又没法自己读取里面的日志,我又没法查看,显示⏵⏵ accept edits on · pnpm nx serve map-ai-agent (running) · ctrl+t to hide tasks
是采用tmux分屏来加载,然后通过tmux来自动读取日志吗。还是怎么打通后台服务,自动读取?
一个复杂需求,使用openspec拆解
如何衡量拆解的质量。以及做了一大堆后,我如何见缝插针的去检查
做了一大堆,但是没有满足到实际需求,我都不知道从哪里下手去,还要自己去读源码
拆解任务的时候就要给喔建立起框架,特别是数据流。
开发完成后进行功能检查
开发前先写测试-测试驱动
还需要需求追踪,需求变更,需求增加,已完成哪些需求,都需要明确的规范管理
fetch工具总是调用失败 好像是这些网站拒绝claude.ai的调用
模糊需求 -> /opsx:explore -> 多智能体 -> 落实PRD/ -> 落实设计 -> 落实技术 -> /opsx:propose -> 返回验证 -> /opsx;
文件名中英文混合的话,会在中英文之间插入空格,导致read write工具一直调用失败
需要在当前会话记住 tmux的窗口 服务启动的地址 需求状态 git worktree
openspec中的代办不会默认读取
他自己的会进入exoplore 和 plane。并且会话结束会自动扫描代办 怎么掌控这个过程从而结合openspec?实现
好像没法读取TUI数据? 就是nx启动的界面。他读取不了 不是不能读取 TUI 界面,而是 capture-pane 命令捕获的是 tmux 窗口的可见文本输出,但 NX TUI 使用的是实时刷新的界面,输出被 TUI 的 UI 元素(如进度条、边框)覆盖了。
类型要求一定要严格。不然总是蒙混过关 那三句提示词应该有效
git worktree‘ 需要确认路径对不对
环境变量也需要一个文档来说明并添加文件指引到CLAUDE.md中
要在对话中存储些什么?
implement-choropleth-rendering 是什么标志?
默认情况下的长任务跑出来的质量堪忧: 虽然看起来是调用了subagnets、planer、 1.明确有验收标准。但是最后交付的东西没有一个能跑通,跑不通的原因通常由,api是假的,前端页面报错,操作逻辑不对,更严重的是,架构设计完全是伪的 上下文及其庞大,会反复触发/compact,上下文丢失严重。
e2e测试必须覆盖。 架构设计文档要定稿后才开启长循环 每一个需求实现循环都应该是按openspec流程来。可以并行的就直接创建agent teams 或者EnterWorktree
不是在每次修改后使用codex进行review。而是在/opsx:apply结束后再进行code review
主要目标是PRD,行动纲领是技术架构设计。subagent来执行,验收完成后直接销毁。
lint检查放在哪里合适?是每次改完代码后的claude code hook还是放在husky中,在提交git前检查。
所有的skills agents 都应该在项目目录
❯ ● Fetch(https://github.com/affaan-m/everything-claude-code/blob/main/README.zh-CN.md) ⎿ Error: Unable to verify if domain github.com is safe to fetch. This may be due to network restrictions or enterprise security policies blocking claude.ai.
● 关于那个错误: 这是 Claude Code 的 WebFetch 工具的安全检查机制触发了,意思是 Claude Code 无法验证 github.com是否安全可访问,不是因为 GitHub 拒绝了请求。这是网络层面的问题(可能是 WSL 内部网络限制或企业防火墙)。
有很多检测错误必须是在运行后才能发现 建议的改进:
- 启动时验证:在 CI/CD 中添加 npm run start:check 环节,运行应用但不监听端口,只验证 DI 容器能否启动
- TypeScript 严格模式:确保 strict: true 在 tsconfig.json 中
- 模块注册审查清单:
- 所有 provider 的构造函数参数都有对应的 provider
- 通过工厂创建的服务不应该直接注册为 provider
- 实现 @nestjs/common 接口的类必须导入该接口
- Codex 检查范围扩展:明确告知 Codex 检查"模块注册的完整性"
● Bash(TEST_API_KEY="asm_lO8txbNteDCdM5urqX1aULZteEysGhjV" TEST_EMAIL="test@example.com" TEST_PASSWORD="test123456" npx playwright test apps/ASM/web-e2e/src/skill-driv…) ⎿ 轮询 1: status=queued 轮询 2: status=succeeded ✅ 任务完成: status=succeeded ✅ 结果获取成功: mapUrl=/projects/af9b6ac5-aaf7-4335-8f26-741a1dd353f7 +4 lines (9s · timeout 3m) (ctrl+b ctrl+b (twice) to run in background)
background和task有什么区别? 后台的task好像是从这里输出的 /tmp/claude-1000/-home-xjw-projects-xjw-monorepo/f705155f-7607-4851-9dbb-e9d234568c33/tasks/bo7jtc7uu.output
⎿ Tip: Use /agents to optimize specific tasks. Eg. Software Architect, Code Writer, Code Reviewer
Tip: Use /statusline to set up a custom status line that will display beneath the input box
一个任务太大后,AI会注水,哪怕是拆解得很细致后依旧。 所以还是要
开发一个任务,要明确边界,数据流从哪到哪,边界情况是用mock还是什么。 不明确,AI会乱搞,不会一直将功能探索实现下去。会在很多地方都假实现。 明确边界,不仅是约束AI编码的质量,更是约束自己去构思。 实际下来,虽然流程好像很对,但是实际的内容并不达标。
不是凭空产生,而是加速自己的实现过程,在古法编程时代需要思考的内容,现在一样不能少。只是在代码层面上,不用手敲了。对于代码需要尽量通读,建立直觉,这才能作为后续不断使用Ai开发不失控的重中之重