本页介绍 PactKit 的设计原则,帮助理解工具包的设计理念。
设计原则
PactKit 遵循以下核心原则:
-
开闭原则 (OCP) — 通过添加而非修改来扩展。新格式、Agent 或规则通过配置添加,而非修改代码。
-
单一数据源 — 每个概念只存在于一个位置。Spec 定义需求,Board 跟踪工作,代码实现行为。
-
Prompt 优先 — 行为变更优先修改 prompt 再考虑代码变更。通过 prompt 调整 AI 行为,成本更低、更灵活。
-
默认条件化 — 所有可选功能(CI/CD、hooks、集成)默认禁用,仅在明确配置时激活。
-
Spec 即法律 — 当 Spec、测试和代码发生冲突时,Spec 优先。代码适应 Spec,绝不反过来。
组件概览
PactKit 由四种主要组件类型组成:
| 组件 | 用途 | 数量 |
|---|---|---|
| Agents | 具有专业知识的角色化 AI 人格 | 9 |
| Commands | PDCA 工作流剧本 | 11 |
| Skills | 特定任务的可复用工具 | 10 |
| Rules | 行为治理模块 | 8 |
这些组件协同工作实现 PDCA 循环,每个 Agent 负责特定阶段。
PDCA 数据流
用户需求
→ Plan 阶段 → 系统架构师 → Spec + Board 条目
→ Act 阶段 → 高级开发者 → 测试 + 实现
→ Check 阶段 → QA 工程师 → 验证 + 结论
→ Done 阶段 → 仓库维护者 → 提交 + 归档跨会话状态
PactKit 通过标准 markdown 文件维护跨会话的项目状态:
| 文件 | 用途 |
|---|---|
docs/specs/*.md | 需求和验收标准 |
docs/product/sprint_board.md | 当前工作项 |
docs/product/context.md | 自动生成的 Sprint 状态快照 |
docs/architecture/governance/lessons.md | 累积的项目知识 |
这些文件是人类可读的,并受版本控制,确保透明性和可审计性。
多格式支持
PactKit 通过格式配置文件部署到多个 AI 工具:
| 格式 | 目标 | 使用场景 |
|---|---|---|
classic | Claude Code | 原生 Claude 集成 |
opencode | OpenCode | 原生 OpenCode 集成 |
plugin | Claude Code 插件 | 市场分发 |
每种格式获得相同的核心功能,并适配目标工具的约定。
贡献
PactKit 是开源的。欢迎以下贡献:
- Bug 修复和改进
- 文档增强
- 新的语言栈配置
- 集成示例
请通过 GitHub Issues 报告问题或提出功能建议。