|
| 1 | +# 产品层组件架构——详细映射表 |
| 2 | + |
| 3 | +> 按需加载。从 `product-architecture.md` §3 引用。 |
| 4 | +
|
| 5 | +## §0 速查 |
| 6 | + |
| 7 | +| 章节 | 内容 | 何时查阅 | |
| 8 | +|------|------|---------| |
| 9 | +| §A | Skill-Agent 路由矩阵 | 创建/修改 Skill 的 fork/inline/model/Hook 配置 | |
| 10 | +| §B | Hook 架构模式 | 创建/修改 Hook、理解事件映射 | |
| 11 | +| §C | Agent 协作架构 | 创建/修改 Agent、理解决策边界 | |
| 12 | +| §D | Skill→Schema 依赖矩阵 | 修改 Schema 前评估影响范围 | |
| 13 | +| §E | 信号系统三方同步 | 修改信号定义时 | |
| 14 | + |
| 15 | +## §A Skill-Agent 路由矩阵 |
| 16 | + |
| 17 | +| Skill | Agent (fork) | model | Skill 级 Hooks | |
| 18 | +|-------|-------------|-------|----------------| |
| 19 | +| pace-dev | pace-engineer | sonnet | PreToolUse: scope-check | |
| 20 | +| pace-review | pace-engineer | opus | PreToolUse: scope-check | |
| 21 | +| pace-test | pace-engineer | sonnet | — | |
| 22 | +| pace-feedback | pace-engineer | — | — | |
| 23 | +| pace-release | pace-engineer | — | — | |
| 24 | +| pace-change | pace-pm | sonnet | — | |
| 25 | +| pace-plan | pace-pm | sonnet | — | |
| 26 | +| pace-biz | pace-pm | sonnet | PreToolUse: scope-check | |
| 27 | +| pace-retro | pace-analyst | sonnet | — | |
| 28 | +| pace-guard | pace-analyst | — | — | |
| 29 | +| pace-init | _(inline)_ | — | PreToolUse: scope-check | |
| 30 | +| pace-next | pace-analyst | haiku | — | |
| 31 | +| pace-status | pace-analyst | haiku | — | |
| 32 | +| pace-pulse | pace-analyst | haiku | — | |
| 33 | +| pace-learn | _(inline)_ | — | — | |
| 34 | +| pace-theory | _(inline)_ | — | — | |
| 35 | +| pace-role | _(inline)_ | — | — | |
| 36 | +| pace-trace | _(inline)_ | — | — | |
| 37 | +| pace-sync | _(inline)_ | — | — | |
| 38 | + |
| 39 | +**路由原则**: |
| 40 | +- **fork**:需要写入 `.devpace/` 或执行复杂多步操作的 Skill——提供上下文隔离 |
| 41 | +- **inline**:查询型或轻量操作的 Skill——避免子 agent 开销 |
| 42 | +- **Agent 鲁棒性**:fork 不可用时静默回退到 inline(rules §13.5) |
| 43 | + |
| 44 | +## §B Hook 架构模式 |
| 45 | + |
| 46 | +**全局 vs Skill 级 Hook**: |
| 47 | + |
| 48 | +| 范围 | 配置位置 | 生效条件 | |
| 49 | +|------|---------|---------| |
| 50 | +| 全局 | `hooks/hooks.json` | 始终生效(匹配 matcher) | |
| 51 | +| Skill 级 | SKILL.md `hooks` frontmatter | 仅该 Skill 激活时生效 | |
| 52 | + |
| 53 | +Skill 级 Hook 位于 `hooks/skill/` 目录,命名规范:`pace-xxx-scope-check.mjs`。 |
| 54 | + |
| 55 | +**事件-Hook-行为映射表**: |
| 56 | + |
| 57 | +| 事件 | Hook 脚本 | 行为 | 阻断? | 异步? | |
| 58 | +|------|----------|------|-------|-------| |
| 59 | +| SessionStart | session-start.sh | 加载 devpace 上下文,检测 `.devpace/` | 否 | 否 | |
| 60 | +| PreToolUse (Write\|Edit) | pre-tool-use.mjs | 质量检查:路径合规、状态一致性 | 是 (exit 2) | 否 | |
| 61 | +| PostToolUse (Write\|Edit) | post-cr-update.mjs | CR 更新后的连锁检查 | 否 | 是 | |
| 62 | +| PostToolUse (Write\|Edit) | pulse-counter.mjs | 脉搏计数器(节奏检测) | 否 | 是 | |
| 63 | +| PostToolUse (Write\|Edit) | sync-push.mjs | 外部同步推送检查 | 否 | 是 | |
| 64 | +| PostToolUse (Write\|Edit) | post-schema-check.mjs | Schema 合规验证 | 否 | 是 | |
| 65 | +| PostToolUseFailure (Write\|Edit) | post-tool-failure.mjs | 失败恢复检查 | 否 | 否 | |
| 66 | +| UserPromptSubmit | intent-detect.mjs | 意图检测(探索/推进模式判断) | 否 | 是 | |
| 67 | +| PreCompact | pre-compact.sh | 压缩前保存 devpace 状态 | 否 | 否 | |
| 68 | +| Stop | session-stop.sh | 会话检查 | 否 | 否 | |
| 69 | +| SessionEnd | session-end.sh | 最终状态保存 | 否 | 否 | |
| 70 | +| SubagentStop | subagent-stop.mjs | 子 agent 状态检查 | 否 | 否 | |
| 71 | + |
| 72 | +**Skill 级 Hook 映射**: |
| 73 | + |
| 74 | +| Skill | 事件 | Hook 脚本 | 用途 | |
| 75 | +|-------|------|----------|------| |
| 76 | +| pace-dev | PreToolUse (Write\|Edit) | skill/pace-dev-scope-check.mjs | 开发范围守护 | |
| 77 | +| pace-review | PreToolUse (Write\|Edit) | skill/pace-review-scope-check.mjs | 审核范围守护 | |
| 78 | +| pace-init | PreToolUse (Write\|Edit) | skill/pace-init-scope-check.mjs | 初始化范围守护 | |
| 79 | +| pace-biz | PreToolUse (Write\|Edit) | skill/pace-biz-scope-check.mjs | 业务分析范围守护 | |
| 80 | + |
| 81 | +**Hook 通信协议**: |
| 82 | + |
| 83 | +``` |
| 84 | +事件触发 → stdin JSON(含 tool_name, file_path 等上下文) |
| 85 | + → Hook 脚本解析 JSON + 读取 .devpace/ 状态文件 |
| 86 | + → exit 0(放行)| exit 2(阻断 + stderr 提示)| 其他(非阻断错误) |
| 87 | + → stdout 反馈信息注入会话上下文 |
| 88 | +``` |
| 89 | + |
| 90 | +**关键约束**:Hook 脚本不解析 `rules/`、`skills/`、`knowledge/` 中的 Markdown 文件——所有状态感知通过 `.devpace/` 运行时文件和 stdin JSON 完成。 |
| 91 | + |
| 92 | +## §C Agent 协作架构 |
| 93 | + |
| 94 | +**三角色模型**: |
| 95 | + |
| 96 | +| Agent | 职责域 | 核心能力 | 工具权限 | |
| 97 | +|-------|--------|---------|---------| |
| 98 | +| pace-engineer | 工程执行 | CR 实现、质量门、代码变更 | Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion | |
| 99 | +| pace-pm | 产品规划 | 迭代规划、变更管理、业务对齐 | Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion | |
| 100 | +| pace-analyst | 度量分析 | 指标收集、回顾分析、趋势报告 | Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion | |
| 101 | + |
| 102 | +**决策边界矩阵**: |
| 103 | + |
| 104 | +| 决策类型 | 决策者 | Agent 角色 | |
| 105 | +|---------|--------|-----------| |
| 106 | +| 代码实现方案 | pace-engineer | 执行 + 建议 | |
| 107 | +| CR 状态转换 | pace-engineer | 执行(受 Gate 约束) | |
| 108 | +| 迭代范围调整 | pace-pm | 建议(需用户确认) | |
| 109 | +| 需求变更评估 | pace-pm | 分析 + 建议 | |
| 110 | +| 度量报告生成 | pace-analyst | 执行 | |
| 111 | +| 风险预警 | pace-analyst | 分析 + 提示 | |
| 112 | +| Gate 3 审批 | **人类** | 不可代替(IR-2) | |
| 113 | + |
| 114 | +**Memory 策略**:Agent 使用 `memory: project`(`.claude/agent-memory/<name>/`)持久化跨会话上下文。下次 fork 到同一 Agent 时自动加载。适用于:迭代上下文延续(pace-pm)、技术决策记忆(pace-engineer)、度量基线记忆(pace-analyst)。 |
| 115 | + |
| 116 | +## §D Skill→Schema 依赖矩阵 |
| 117 | + |
| 118 | +基于产品层文件的直接路径引用统计。`>` = 直接引用。权威 fan-in 数据见 `knowledge/_schema/README.md`。 |
| 119 | + |
| 120 | +| Skill | cr-format | project-format | checks-format | iteration-format | test-strategy | insights-format | 其他 Schema | |
| 121 | +|-------|-----------|---------------|---------------|-----------------|--------------|----------------|-------------| |
| 122 | +| pace-init | | > | > | | | | context-format, integrations-format | |
| 123 | +| pace-dev | > | | | | > | | br-format, pf-format, risk-format, context-format | |
| 124 | +| pace-review | > | | | | | | accept-report-contract | |
| 125 | +| pace-test | > | | | | > | | test-baseline-format | |
| 126 | +| pace-change | > | | | > | | | | |
| 127 | +| pace-plan | | | | > | | | | |
| 128 | +| pace-biz | | > | | | | | epic-format, opportunity-format, readiness-score, merge-strategy | |
| 129 | +| pace-retro | | | | | | > | test-baseline-format | |
| 130 | +| pace-guard | | | | | | | risk-format | |
| 131 | +| pace-feedback | > | | | | | | | |
| 132 | +| pace-release | | | | | | | release-format, integrations-format | |
| 133 | +| pace-learn | | | | | | > | | |
| 134 | +| pace-sync | | | | | | | sync-mapping-format | |
| 135 | +| pace-trace | | | | | | | adr-format | |
| 136 | +| pace-pulse | > | | | | | | | |
| 137 | +| rules | > | | > | > | | | state-format | |
| 138 | + |
| 139 | +### Schema Fan-in 摘要 |
| 140 | + |
| 141 | +| Schema 文件 | Fan-in | 稳定性要求 | |
| 142 | +|------------|--------|-----------| |
| 143 | +| cr-format.md | 10 | 极高——变更需评估 5+ Skill 影响 | |
| 144 | +| checks-format.md | 7 | 高——变更需评估 5+ Skill 影响 | |
| 145 | +| iteration-format.md | 4 | 高 | |
| 146 | +| insights-format.md | 4 | 高 | |
| 147 | +| sync-mapping-format.md | 4 | 高 | |
| 148 | +| integrations-format.md | 3 | 中 | |
| 149 | +| test-baseline-format.md | 3 | 中 | |
| 150 | + |
| 151 | +## §E 信号系统三方同步 |
| 152 | + |
| 153 | +信号(Signal)驱动 Skill 间的衔接推荐: |
| 154 | + |
| 155 | +``` |
| 156 | +signal-priority.md (SSOT) ← 定义信号优先级 |
| 157 | +signal-collection.md ← 定义信号采集规则 |
| 158 | + ↓ |
| 159 | +pace-next / pace-pulse / pace-status ← 消费信号,生成推荐 |
| 160 | + ↓ |
| 161 | +session-start.sh (推送) → pace-next (拉取,去重) ← 会话级信号流 |
| 162 | +``` |
| 163 | + |
| 164 | +三方同步要求:变更信号定义时,`signal-priority.md`、`signal-collection.md`、消费 Skill(next/pulse/status)三者需同步更新。详见 `references/sync-checklists.md`。 |
0 commit comments