pdlc-relate · git:20260606.4b10e8d · 2026-06-06 · sha256 9de61fca7b235133
pdlc-relate git:20260606.4b10e8dA
Immutable. This exact content is served forever at /api/v1/blob/9de61fca7b235133.
--- name: pdlc-relate description: 管理 feature 关系链(set/query/impact/orphans/rebuild/validate) argument-hint: <set|query|impact|orphans|rebuild|validate> [args] allowed-tools: Read, Write, Edit, Glob, Grep, Bash layer: 3 stage: ops produces: - docs/.pdlc-state/_relations.json - docs/.pdlc-state/_graph.md requires: [] next_step: null terminal_state: null --- # Feature 关系链管理 <!-- @include templates/prompts/iron-law.md --> 管理 PDLC feature 之间的关系链。维护反向索引 `docs/.pdlc-state/_relations.json` 和全局图 `docs/.pdlc-state/_graph.md`。 <!-- @include templates/prompts/relations.md --> ## 段一:执行子命令 从 `$ARGUMENTS` 解析子命令: ### `set <fid> <type> <target-fid> [target-fid...]` 为 feature `<fid>` 添加 `<type>` 关系,指向一或多个目标。 1. 读 `docs/.pdlc-state/<fid>.json`;**若无 `relations` 块**(旧状态文件 / Phase 1 关系块可选),先初始化六类空块(`extends`/`depends_on`/`supersedes`/`resolves`/`conflicts_with`/`relates_to`),再在 `relations.<type>` 数组追加目标(去重) 2. 若 `<type>` 是对称类型(conflicts_with / relates_to)→ 同时在每个目标的 `<fid>.json` 镜像写入 3. 写回后调用本命令 `rebuild` 流程刷新 `_relations.json` + `_graph.md` ### `query <fid>` 显示 `<fid>` 的全部关系(出边 + 从 `_relations.json` 读入边)。 ### `impact <fid>` ⭐ 杀手锏 分析改动 `<fid>` 的影响半径。读 `_relations.json`: - 🔴 **直接影响**(depth 1 入边):直接 extends / depends_on 本 feature 的,必须协调 - 🟡 **间接影响**(depth ≥2 传递入边):通过中间 feature 传递依赖的,应 review - 🟢 **历史**(指向 terminal-state feature 的边 / resolves 的缺陷):仅审计 输出树状结构 + 建议(先 review 哪些 PRD / 是否该新建 supersedes feature 而非就地改)。 ### `orphans` 列出 `_relations.json` 中 inbound + outbound 均为空的 feature(可能是孤立 / 死代码候选)。 ### `rebuild` 扫描所有 `docs/.pdlc-state/<id>.json` 的 `relations` 块 + 文档追溯头的 `关系:` 行,重建: - `_relations.json`:nodes(id→name/stage/terminal)+ edges(flat 有向列表)+ index(每节点预计算 inbound/outbound) - `_graph.md`:mermaid 图,边样式按类型区分(supersedes 虚线 / conflicts_with 粗线 / 其余实线),顶部加 `<!-- AUTO-GENERATED by /pdlc-relate · do not edit by hand -->` ### `validate` 按 `relations.md` 的校验规则检查:悬空引用 / 自引用 / extends·depends_on 成环 / 矛盾对 / 对称一致性。报告问题清单。 ## 段二:自检(强制) <!-- @include templates/prompts/self-audit.md --> ### 关系链自检清单 - [ ] `_relations.json` 是合法 JSON(`jq . ` 通过) - [ ] 所有 edge 的 from/to ID 在 nodes 中存在(无悬空) - [ ] 对称类型(conflicts_with / relates_to)两端互含 - [ ] extends / depends_on 无环 - [ ] `_graph.md` 含 `AUTO-GENERATED` 头且 mermaid 语法成对闭合 - [ ] set 操作的目标 ID 格式合法(F/B 开头) ## 段三:修复(单次,不递归) <!-- @include templates/prompts/loop-prevention.md --> - 可自动修复(对称缺失补镜像 / index 不一致 → 重跑 rebuild)→ 直接修 - 无法自动修复(真实的循环依赖 / 用户意图矛盾)→ 记录到报告,提示人工介入 ## 段四:交接 > **状态机豁免**:本命令非 feature-scoped(不推进单个 feature 的阶段),不更新 `<feature-id>.json` 的 history,只维护关系索引文件。同 `/pdlc-changelog`。 <!-- @include templates/prompts/handoff.md --> **本命令的 handoff 输出:** ``` ✅ 关系操作完成:<子命令> <参数> 📦 已更新:docs/.pdlc-state/_relations.json + _graph.md 👉 下一步:/pdlc-relate impact <fid> 查影响 | /pdlc-status 看全景 ``` --- **关系操作**: $ARGUMENTS