Appearance
coder角色项目知识库简介
1. 定位
knowledge/ 是面向日常开发维护的项目知识库,主要用于支持:
- 修改小 bug
- 实现小需求
- 快速理解已有功能
- 快速定位代码入口
- 判断问题类型和分析方向
- 降低改动风险
它的目标不是记录每一次任务过程,而是沉淀稳定、可复用的项目特有知识,让开发者或 Agent 能够更快完成:
text
理解问题 → 找到对象 → 定位流程 → 确认入口 → 制定修改方案 → 控制风险
2. 目录结构
text
knowledge/
├── README.md
├── writing-guide.md
├── domain/
│ ├── README.md
│ └── terms-map.yml
├── issues/
│ ├── README.md
│ ├── categories/
│ ├── symptoms/
│ └── case-studies/
├── structure/
│ ├── README.md
│ ├── objects/
│ ├── flows/
│ ├── entries/
│ └── repos/
├── implementation/
│ ├── README.md
│ ├── fixes/
│ └── risks/
└── skills/
└── code_review.md
3. 分层说明
3.1 domain/:业务语义层
domain/ 负责回答:
用户说的这个东西,在系统里到底是什么? 其实domain包含的信息很多,但是在当前场景下,其实不需要那么多描述。只要把关键的动作,名词沉淀下来。通过简短描述,就能迅速定位到具体的代码级别语义,而不是通过各种手段去查询,之类的。是省的这个动作的消耗。而不是每次都让ai或者人去漫无目的的搜寻,还可能搜寻不全。
核心文件是:
text
knowledge/domain/terms-map.yml
terms-map.yml 是用户语言到系统知识的静态映射入口。
它会把用户口头描述、业务词、英文名、别名,映射到对应的结构文档中。
日常使用时,domain/ 是第一步,用于把“用户语言”翻译成“项目里的对象或流程”。
3.2 issues/:问题识别层
issues/ 负责回答:
这个现象更像哪一类问题?通常是怎么解决的。 这一层是coder角色的经验模式积累,一般分为哪些问题,通常是什么方案解决。
它用于根据问题描述快速判断问题类型,并且参考现有的方案。
3.3 structure/:代码结构层
structure/ 是日常修 bug 和做小需求最常用的目录。
它负责回答:
代码在哪里?对象是什么关系?流程怎么走?入口从哪里进? 这里其实就是代码上层的一个索引模型了,简单交代了代码结构,和目前的功能,以及源码级别的路由。
structure/ 主要分为三类:
text
structure/
├── objects/
├── flows/
└── entries/
structure/objects/:静态对象结构
用于描述核心业务对象在代码中的静态结构。
structure/flows/:动态流程
用于描述一个功能从触发到完成的主链路。完成功能串联的代码语义。
structure/entries/:代码入口
用于记录高频功能的代码起点。也就是业务的入口。
3.4 implementation/:实施经验层
implementation/ 负责回答:
项目的架构风格,模块约束。全局硬约束,代码军规。 实施层面的约束。
它只在准备实际修改代码时使用。
3.5 writing-guide.md:知识回写规则
writing-guide.md 用于判断任务完成后,哪些内容值得沉淀,沉淀在哪,怎么取舍. 这一层其实最难,ai堆文档堆知识都很擅长,但是怎么整理,怎么删除。大部分ai都是抓瞎的,这里主要就是为了限制回写的规则.
4. 静态结构重点
从静态结构角度看,本知识库最重要的是:
text
domain/terms-map.yml issues/
↓ ↓
structure/objects/
↓
structure/entries/
5. 后续优化方向
其实在最开始建设知识库时,我为它设计了很多动态行为约束和流程。但随着 LLM 和 Agent 能力的不断升级,我逐步放弃了这方面的大量沉淀,直接删除了大部分原先定义的工作流。
原因很简单:我明显地感受到,LLM 和 Agent 本身就在朝这类能力持续演进,而我们再去做这方面的人工微调,边际收益已经越来越低。尤其是对于流程整理这件事,用 LLM 来驱动并不是特别合适;如果某个工作流已经足够清晰、稳定、可复用,那么与其用自然语言去约束,不如直接用代码或脚本将其固化下来,这样通常会更可靠,也更易维护。 另外,AI 基础设施本身几乎每天都在进化。因此,我们做知识沉淀时,应该尽量把重点放在 AI 不擅长自动补足、但对项目真正有价值的部分,也就是项目知识、行业特有知识,以及业务层面的持续积累。 同时,我认为知识库本身也需要继续做减法。增加内容很容易,但删除内容很难;而废话越多,真正有价值的信息密度就越低,反而会造成额外消耗。 接下来的主要方向有两个:
- 淡化 issue 层的记录 只保留那些特别典型、具有代表性的问题。其他问题仍然应当更多地从代码事实出发进行分析,而不是在 issue 层面做过多堆积。
- 建立从 design 到 structure 的映射链路 面向较大需求,补充一套更严谨的分析和落地流程,确保设计意图能够清晰映射到系统结构层面。