灵犀笔记
AI交互记录
记录任务进度、人机协作过程和问题排查复盘
当前结论
文档站点主体和两套记录模板已经完成。目前主要等待真实软件资料和正式部署信息。
任务概览
| 项目 | 内容 |
|---|---|
| 记录 ID | AI-LX-20260723-001 |
| 当前任务 | 建立可静态发布、可持续维护的软件项目文档体系 |
| 状态 | 进行中 |
| 更新时间 | 2026-07-23 16:40 |
| 项目 | 灵犀笔记 |
已经完成
- 创建独立 Fumadocs 应用,生产构建输出到
out静态目录 - 建立“自创软件 → 软件项目 → 固定五类页面”的目录规范
- 加入文档分区切换器,并限定“自创软件”的侧栏范围
- 加入可持久化的全局配色选择器
- 完成 GitHub 风格的变更记录组件、规范和空白模板
- 完成结构化卡片版 AI 交互记录模板
- 完成以 Markdown 为主的 AI 交互记录模板
当前卡点
- “灵犀笔记”仍然是示例项目,缺少真实产品介绍和项目截图
- 源码仓库与安装包下载地址尚未提供
- 正式部署平台、域名和自动发布流程尚未确定
下一步计划
- 用真实软件项目资料替换示例内容
- 补充产品截图、源码地址和安装包信息
- 确定静态托管平台并建立自动发布流程
- 使用更多真实任务测试 AI 交互记录模板
- 根据阅读反馈继续精简字段和内容密度
背景与目标
需要构建一个独立的 Fumadocs 文档站点,用于长期收录自创软件。站点在线运行时不能依赖 Next.js 服务端,每个软件项目必须使用一致的文档目录,并为变更记录和 AI 协作记录提供可复用模板。
约束与边界
- 生产环境只能依赖静态文件
- 依赖管理统一使用 Bun
- 软件项目三级菜单固定为:简介、文档、变更记录、AI交互记录、源码和下载
- 菜单和内容模板必须可复用并遵守统一规范
- AI 不得将未确认的信息写成确定结论
- 无法确认的根因必须标记为“未知”或“证据不足”
技术栈
| 分类 | 技术 |
|---|---|
| 文档框架 | Fumadocs 16、MDX |
| 应用框架 | Next.js 16 静态导出、React 19 |
| 开发语言 | TypeScript |
| 样式 | Tailwind CSS 4 |
| 包管理器 | Bun |
| 搜索 | Orama |
| 静态服务 | serve out |
协作与排查过程
| 步骤 | 参与者 | 做了什么 | 得到的结果 |
|---|---|---|---|
| 1 | 用户 | 明确静态站点和目录目标 | 确认应用位置、静态部署要求和固定三级菜单 |
| 2 | AI | 使用官方静态模板创建应用 | 成功生成 out,运行时不需要 Next.js 服务端 |
| 3 | 用户 | 澄清官方“主题”功能 | 确认内容分区和全局配色是两个独立需求 |
| 4 | AI | 检查官方实现并拆分功能 | 分别实现文档分区切换器和全局配色选择器 |
| 5 | 验证 | 执行 lint、类型检查、静态构建和页面检查 | 所有检查通过,主要页面返回 HTTP 200 |
| 6 | 用户 | 明确记录模板的长期用途 | 模板改为统一字段、可复用、可由 AI 总结生成 |
| 7 | AI | 实现两种 AI 记录模板 | 保留结构化详细版,同时新增 Markdown 阅读版 |
踩坑复盘
1. “主题切换”存在语义歧义
| 项目 | 内容 |
|---|---|
| 现象 | 最初把截图中的控件理解为文档产品分区,但实际还需要独立的全局配色切换 |
| 原因 | “主题”可能表示内容分类、视觉配色或明暗模式 |
| 解决 | 保留文档分区下拉框,同时新增独立的全局配色选择器 |
| 注意 | 遇到多义词时,应先拆分内容组织、视觉风格和显示模式三个维度 |
排查过程:
- 查看官方页面中搜索框下方控件的真实菜单结构
- 比较 Framework、Fumadocs UI、Core 和 MDX 页面使用的主色变量
- 根据用户澄清,将一个模糊需求拆成两个独立功能
- 分别验证分区切换、跨页面配色和刷新后的状态保持
2. 文档分区没有自动限定侧栏范围
| 项目 | 内容 |
|---|---|
| 现象 | 下拉菜单可以显示,但进入自创软件后仍可能看到完整文档树 |
| 原因 | myself 目录没有被标记为独立页面树根节点 |
| 解决 | 在 myself/meta.json 中设置 root: true 和 pagesIndex: index |
| 注意 | Fumadocs 分区不只是 UI tabs,还需要通过元数据定义内容边界 |
排查过程:
- 检查
DocsLayout和页面树相关类型定义 - 阅读当前版本的
TreeContextProvider和getLayoutTabs实现 - 确认侧栏根据带有
root标记的文件夹选择页面树 - 修改元数据并重新构建验证
3. 内容源生成文件短暂为空
| 项目 | 内容 |
|---|---|
| 现象 | 类型检查提示 .source/server.ts 不是模块,文件暂时为 0 字节 |
| 原因 | 证据不足,未确认更深层根因 |
| 解决 | 执行完整静态构建重新生成内容源,再重新运行 lint 和类型检查 |
| 注意 | 不要把临时现象写成确定根因,应保留不确定性并重复验证 |
排查过程:
- 检查
.source目录和内容集合配置 - 确认浏览器侧集合仍包含全部 MDX 页面
- 执行完整 Next.js 静态构建
- 重新运行 lint 和类型检查,确认问题没有再次出现
关联资料
- 变更记录
- 项目文档
- 结构化详细版模板:
content/templates/ai-interaction-log.mdx - Markdown 阅读版模板:
content/templates/ai-interaction-markdown.mdx
这份记录由 AI 根据实际协作过程整理。事实、计划和未确认信息必须明确区分。