游乐游手机版
首页/AI教程/文章详情

PDLC 1.1 指正 v1.0 产物形状的两大错误

时间:2026-06-26 16:27
PDLCv1 0未区分产物类型,将历史记录与当前状态文档均按追加方式处理,导致文档目录混乱。v1 1引入 pdlc-standard指令,强制surface型产物就地维护固定路径,禁止生成带版本号的规范文件。同时,v1 0中feature之间缺乏关联,影响改动追踪;v1 1增加 pdlc-relate指令,定义六种关系类型,通过 pdlc-relateimp

用 PDLC 跑了几个月,有一天我在项目 docs/ 目录里撞见了这么个场景:

docs/├── architecture-2025-10-03.md├── architecture-2025-11-14.md├── architecture-2025-12-01.md├── architecture-2026-01-08.md└── architecture-2026-02-19.md

五份架构文档,每份都带着一个日期后缀。但我完全分不清,到底哪一份才是当前最准确的版本。

这个问题不能全归咎于用户操作。根本原因出在 PDLC v1.0 的设计上——它把各个阶段产出的内容一视同仁,全部当作只允许追加的历史记录。这套逻辑在 PRD 上行得通,但套用到架构总览上,结果就是上面那堆混乱的文件。

v1.1 专门修复了这类设计缺陷,而且一次性解决了两个核心问题。

错误一:没有区分两种完全不同的产物

动手之前,需要先想清楚一件事:项目产物从时间维度上看,究竟是什么形态?

有一类产物,记录的是“发生了什么”。PRD、设计决策、会议纪要——本质上都是历史证据,不能篡改,只能追加。你绝不会去修改一份三个月前的 PRD 让它看起来“最新”,那会直接破坏整条决策链。这类产物,可以称为 ledger 型(账本)。

另一类产物,记录的是“当前是什么状态”。架构总览、团队编码规范、API 契约——这些永远只有一个“当前有效版本”。维护方式就是直接更新现有文件,而不是另存一份带日期的新副本。这类产物,可以称为 surface 型(当前状态面)。

v1.0 完全没考虑这种区分。AI 拿到任何产物都按默认逻辑追加日期戳。结果 /pdlc-arch 每运行一次就生成一份 architecture-YYYY-MM-DD.md,三个月下来,目录里就堆出了上面那五份文件。

更严重的是规范文档。团队有份 coding-style.md,被修改一次就变成 coding-style-v2.md,接着又是 coding-style-v3.md。到最后没人知道该遵循哪一份,干脆都不看了。

v1.1 的修复方案很直接:让 AI 在生成产物前先判断类型。ledger 型继续采取只追加策略,加日期戳、不允许就地修改;surface 型则强制就地维护一个固定路径的文件——/pdlc-arch 只维护 docs/ARCHITECTURE.md 这一份,每次更新直接修改原文件,遗留的带日期文件自动归档到 docs/archive/

新指令:/pdlc-standard

规范文档是 surface 型里最具代表性的一类,因此 v1.1 为它单独增加了一条指令。

/pdlc-standard 专门管理 docs/00_standards/ 下的规范文件。职责非常明确:

  • add:新建规范时,强制使用语义化路径命名(例如 coding/styleapi/versioning),禁止包含版本号或日期。
  • edit:就地修改现有规范,系统自动记录修改时间,但保持文件名不变。
  • archive:当规范彻底废弃时可以归档,但已有引用不会中断。
  • index:输出当前所有有效规范的索引,方便新成员加入或定期审查。

最关键的一条约束直接写死在提示词中:如果 AI 要生成像 coding-style-v2.md 这种带版本号的规范文件,必须立即中止操作,并提示用户改用 edit 子命令。这条约束从根本上杜绝了版本号泛滥的问题。

错误二:feature 之间互不相识

v1.0 的状态机里,每个 feature 是一个独立的闭环:PRD → 设计 → TDD → 实现 → 评审 → 发布。这个流程设计本身没有问题。

但现实是,功能模块从来不是孤立存在的。

我在 aitm 项目里遇到了经典场景:feature/安全层feature/工具调用 所依赖。修改安全层的黑名单规则,实际上会影响到工具调用的确认逻辑。然而 PDLC 的状态机只盯着单个 feature 的进度,没有任何地方告诉我这两个 feature 之间存在关联。

结果就是每次修改安全层,我都得靠大脑硬记“这会不会影响工具调用那边”——把本应该由系统记住的事情强加给人脑,这种设计显然不合理。

新指令:/pdlc-relate

v1.1 新增了 /pdlc-relate,专门用于管理 feature 之间的关联关系。

关系类型共六种:

类型含义
extends这个 feature 是另一个的扩展
depends_on这个 feature 依赖另一个的实现
supersedes这个 feature 替代了另一个(另一个应归档)
resolves这个 feature 修复了另一个引入的问题
conflicts_with两个 feature 有已知冲突,不能同时激活
relates_to宽泛关联,不属于以上类型

建立关系非常简单:

/pdlc-relate set feature/工具调用 depends_on feature/安全层

但真正的杀手锏是另一个子命令:

/pdlc-relate impact feature/安全层

这个命令会输出:直接依赖这个 feature 的有哪些、通过传递关系间接影响的有哪些、历史上被它替代或解决的有哪些。一条命令,就能把改动的潜在影响范围清晰地展现出来。

设计这个功能时,做了一个反直觉的选择:关系数据存储在 docs/.pdlc/ 下的结构化文件里,而不是某种专用数据库。理由在于——这些关系属于“团队的知识”,应该随代码一起提交、审查、合并。如果存在黑盒里,换一台机器或换一个同事就丢失了。

两个功能一起踩的坑

surface 型产物的迁移,比预想中麻烦不少。已有项目里那些带日期的架构文件,PDLC 怎么知道哪份是“最新的”?答案是不猜测——/pdlc-arch 检测到遗留文件时会停下来询问你:“我看到 architecture-2026-02-19.md,要用这份作为 ARCHITECTURE.md 的初始内容吗?”一个确认步骤,避免了自动迁移可能引发的混乱。

关系类型的设计也走过一些弯路。最初的草稿里只有三种关系:依赖、扩展、冲突。用真实项目跑了一遍,发现很多联系根本描述不了——比如“这个 feature 修复了那个 feature 的遗留问题”,归类不进现有的三种。最后扩展到了六种。六种是刚好够用的边界,再多就容易变成纯粹的分类游戏了。

当前状态

v1.1 已经在三个项目上投入使用:aitm、pdlc-skills 自身、以及一个 SaaS 项目。

ledger/surface 分离解决了一个最让人头疼的问题——docs/ 目录不再是一条时间轴,它变成了一个真正可以查找信息的地方。/pdlc-relate impact 在进行跨 feature 改动时几乎每次都会用到,省去了大量“这会不会影响那边”的排查时间。

33 个标准化阶段的核心结构没有变化。v1.1 只在产物形态和关系建模上做了修正。如果你已经在使用 v1.0,升级基本是无感的——除了 /pdlc-arch 下次运行时,会询问你是否迁移旧文件。

安装 / 升级

首次安装(需要 Claude Code):

/claude install kanfu-panda/pdlc-skills

升级已有安装:

bash <(curl -fsSL https://raw.githubusercontent.com/kanfu-panda/pdlc-skills/main/install.sh) --upgrade

源代码在 GitHub 上,采用 MIT 开源协议。遇到问题可以直接在 Issues 中提出,我会持续关注。

下一篇

PDLC 把流程拆解细致、步步留下产物——好处是避免跳步、防止跑偏,代价是它比“直接让 AI 写”更消耗 token。今天就有人跟我说:“文档一多,token 不就烧得更厉害?”

这个问题值得单独聊一篇文章:这笔 token 账到底该怎么算(我没有精确测量过,但有些反直觉的地方),以及在这套重流程的同时,我是如何控制花销的。节省 token 说到底就是节省成本,但它的意义远不止于此。

来源:https://juejin.cn/post/7651524453219057710
上一篇分享一个高效实用的Claude AI脚本方案 下一篇OpenClaw实战:SKILL极简安装指南,让Agent真正干活
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Windows Docker Desktop RabbitMQ生产级部署完整指南
AI教程 · 2026-06-29

Windows Docker Desktop RabbitMQ生产级部署完整指南

前言 在 Windows 本地开发环境中,直接安装 RabbitMQ 确实颇为周折:需要单独配置 Erlang 运行环境、手动管理环境变量、服务启停全凭手工操作。更令人困扰的是,版本兼容冲突、端口占用、环境不一致等问题层出不穷。笔者见过不少开发者为搭建环境就得耗费整整半天时间。 相比之下,借助 Do

AI搜索重构制造业采购逻辑的阿里云企业级GEOCMS优化实践
AI教程 · 2026-06-29

AI搜索重构制造业采购逻辑的阿里云企业级GEOCMS优化实践

先分享一个切实感受。过去两年,我们与福建制造企业合作较为频繁,发现一个非常突出的现象:超过80%的企业官网,产品参数仍然存放在PDF或图片中。AI爬虫?根本无法抓取。这些企业技术实力不弱、资质证照齐全、应用案例也丰富,但在AI搜索这一全新战场上,它们几乎处于隐身状态。 一、一个正在发生的行业变化 A

阿里云Token Plan团队版功能价格与省钱购买指南
AI教程 · 2026-06-29

阿里云Token Plan团队版功能价格与省钱购买指南

阿里云百炼近期推出了名为“Token Plan 团队版”的全新服务,这一服务专为企业与开发者量身打造,定位为AI大模型订阅平台。通过引入Credits作为统一计量单位,将文本生成、图像生成等多模态AI能力纳入单一计费体系,同时无缝兼容主流AI编程工具及智能体(Agent)生态系统。其核心亮点包括:全

阿里云物联网.NET Core客户端位置信息上报
AI教程 · 2026-06-29

阿里云物联网.NET Core客户端位置信息上报

阿里云物联网平台的位置服务并非一个完全独立的功能模块。位置信息可包含二维坐标与三维坐标,而位置数据的来源本质上是借助设备属性进行上传。换言之,若要让设备上报位置,您需先将其视为一个普通属性进行处理。 1)添加二维位置数据 操作过程十分简洁。进入数据分析 → 空间数据可视化 → 二维数据,点击添加,将

年阿里云服务器选型配置与网站部署全攻略
AI教程 · 2026-06-29

年阿里云服务器选型配置与网站部署全攻略

2026年,阿里云服务器生态已高度成熟,形成了清晰的轻量应用服务器与ECS云服务器两大产品阵营。无论你是计划搭建个人博客、企业官网,还是运营电商平台、进行应用开发,基本都能找到理想的解决方案。本指南将从服务器选型、配置选择、部署流程到安全运维,系统梳理2026年最实用的操作要点,帮助你少走弯路,让网