用途
GSDL Document Decisions 用于在 GSDL 项目完成后,将项目过程中做出的架构决策与代码变更整理成一份结构化的 markdown 文档。它面向未来开发者和项目相关方,重点记录“决策了什么、为什么这样决策、影响了什么”,而不是代码审查式的实现细节。
主要能力
该技能会读取项目磁盘上的 PRD 文件与任务列表文件,并分析 git 历史来收集提交信息。具体包括:
- 读取原始 PRD(目标、需求、非目标)以及已完成任务列表。
- 运行
git log --oneline --no-merges获取项目提交,并通过提交信息中的[N.0]前缀或父任务标题识别属于本项目的提交。 - 对每个相关提交运行
git show --stat [COMMIT_HASH],收集提交信息、要点,以及创建、修改或删除的文件。 - 运行
git diff HEAD~[N] HEAD --name-status获取整个项目的完整文件变更摘要。 - 综合以上信息,提取关键决策与架构变更,包括所选库或框架、采用的模式、权衡与约束、明确未做的事项、执行中被修改/新增/跳过的任务。
- 识别代码库的结构性变更,如新增目录或模块、新增依赖、新增配置文件、重大重构、集成点(API、服务、数据库)。
使用方式
技能接收以下输入:PROJECT_NAME(项目名,kebab-case)、WORKSPACE_ROOT(工作区根目录绝对路径)、PRD_PATH(PRD 文件相对路径)、TASKS_PATH(任务列表文件相对路径)。
生成的文档写入:[WORKSPACE_ROOT]/.planning/[PROJECT_NAME]/decisions-[PROJECT_NAME].md,包含标题、生成日期、PRD 与任务文件名、摘要、关键决策(每项含 What / Why / Impact)、架构变更(新结构、新增依赖、集成点)、未构建内容,以及文件变更表。无内容的章节会被省略。
生成后会向用户展示预览,并询问是否发布到 Slite 或 Notion:输入 slite [URL 或 note ID] 发布为 Slite 子文档,输入 notion [URL 或 page ID] 发布为 Notion 子页面,输入 no 或回车跳过。
发布到 Slite 时优先使用 Slite MCP 服务器的 create-note,否则在存在 $SLITE_API_KEY 时通过 POST https://api.slite.com/v1/notes 调用 REST API。发布到 Notion 时优先使用 Notion MCP 工具创建子页面,否则在存在 $NOTION_TOKEN 时通过 POST https://api.notion.com/v1/pages 调用 REST API,并提供了 markdown 到 Notion block 的转换映射表(标题、引用、列表、表格、加粗等),要求单个文本块不超过 2000 字符。
适用场景
适合采用 GSDL 工作流、需要将项目决策与架构变更沉淀为可追溯文档的团队,以便未来开发者或相关方回顾项目中的关键选择、范围取舍与结构变化,并可选同步到 Slite 或 Notion 知识库。
限制
- 技能规则要求:始终先保存 markdown 文件,即使用户跳过发布。
- 不得覆盖已存在的 decisions 文件;若已存在,则追加时间戳后缀,命名为
decisions-[PROJECT_NAME]-[YYYYMMDD].md。 - 文档聚焦决策而非实现细节,保持事实性语气,避免主观评论。
- 若 git 历史不明确,应注明不确定性而非猜测。
- 发布失败时,会告知用户失败原因并建议手动复制 markdown 文件。
- 关于定价、收费、具体平台可用性等信息暂未提供。