🎉 init: 小龙的工作空间
This commit is contained in:
@@ -0,0 +1,362 @@
|
||||
# Software Factory Core Layer
|
||||
|
||||
> **PR-36**:Software Factory Core — SF-01 ~ SF-15 全部 Factory 的统一入口。
|
||||
|
||||
---
|
||||
|
||||
## 目录
|
||||
|
||||
1. [架构定位](#架构定位)
|
||||
2. [模块架构](#模块架构)
|
||||
3. [Factory Contract](#factory-contract)
|
||||
4. [Factory Registry](#factory-registry)
|
||||
5. [Product Model](#product-model)
|
||||
6. [Workflow Engine](#workflow-engine)
|
||||
7. [Artifact Graph](#artifact-graph)
|
||||
8. [Factory Reporting](#factory-reporting)
|
||||
9. [使用示例](#使用示例)
|
||||
10. [扩展性设计](#扩展性设计)
|
||||
|
||||
---
|
||||
|
||||
## 架构定位
|
||||
|
||||
```
|
||||
┌──────────────────────────────────────────────────────────────┐
|
||||
│ AI Software Company Layer (SF-01~SF-15) │
|
||||
│ SF-01 Strategy · SF-02 Requirement · SF-03 Design · ... │
|
||||
└────────────────────────────┬─────────────────────────────────┘
|
||||
│ 注册并运行于
|
||||
┌────────────────────────────▼─────────────────────────────────┐
|
||||
│ Software Factory Core Layer (PR-36) │
|
||||
│ │
|
||||
│ Factory Contract → 统一接口规范 │
|
||||
│ Factory Registry → SF-01~SF-15 元数据管理 │
|
||||
│ Product Model → 统一产品模型 │
|
||||
│ Workflow Engine → Factory 编排引擎 │
|
||||
│ Artifact Graph → 产物图谱与追踪 │
|
||||
│ Factory Reporting → 跨 Factory 报告体系 │
|
||||
└────────────────────────────┬─────────────────────────────────┘
|
||||
│ 构建于
|
||||
┌────────────────────────────▼─────────────────────────────────┐
|
||||
│ Agent Runtime Layer (PR-35) │
|
||||
│ Task · Pipeline · State Machine · Adapters · Reporting │
|
||||
└────────────────────────────┬─────────────────────────────────┘
|
||||
│ 调用
|
||||
┌────────────────────────────▼─────────────────────────────────┐
|
||||
│ Quality Foundation (PR-01 ~ PR-34) │
|
||||
│ Checklist · Baseline · Gate · Precompute · Memory · ... │
|
||||
└──────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 层次关系
|
||||
|
||||
| 层次 | PR 编号 | 职责 |
|
||||
|------|---------|------|
|
||||
| Quality Foundation | PR-01 ~ PR-34 | 质量门禁、基线比较、发布检查、记忆系统 |
|
||||
| Runtime Layer | PR-35 | 统一任务执行引擎、状态机、适配器 |
|
||||
| **Factory Core Layer** | **PR-36** | **Factory 注册、编排、产品模型、产物追踪、报告** |
|
||||
| AI Software Company | SF-01 ~ SF-15 | 具体 Factory 实现(产品战略到公司运营) |
|
||||
|
||||
---
|
||||
|
||||
## 模块架构
|
||||
|
||||
```
|
||||
src/software-factory-core/
|
||||
├── index.mjs # Barrel export(唯一入口)
|
||||
├── factory-contract.mjs # Part B:统一 Factory 接口
|
||||
│ ├── FactoryInput # 进入 Factory 的输入
|
||||
│ ├── FactoryOutput # Factory 产出
|
||||
│ ├── FactoryArtifact # 产物(10 种类型)
|
||||
│ ├── FactoryMetric # 度量指标(8 种类型)
|
||||
│ ├── FactoryReport # 报告(5 种类型)
|
||||
│ └── FactoryDependency # Factory 间依赖(4 种类型)
|
||||
├── factory-registry.mjs # Part A:Factory 注册中心
|
||||
│ ├── SF-01 ~ SF-15 元数据定义
|
||||
│ ├── 按领域/依赖/状态查询
|
||||
│ ├── 拓扑排序 + 并行批次
|
||||
│ └── 实现注册与执行
|
||||
├── product-model.mjs # Part C:统一产品模型
|
||||
│ ├── 15 种产品组件类型
|
||||
│ ├── 生命周期管理(8 阶段)
|
||||
│ └── 默认技术栈推荐
|
||||
├── workflow-engine.mjs # Part D:Factory 编排引擎
|
||||
│ ├── 4 种执行模式
|
||||
│ ├── 4 种失败策略
|
||||
│ ├── 标准 Factory 流程
|
||||
│ └── 条件执行支持
|
||||
├── artifact-graph.mjs # Part E:产物图谱
|
||||
│ ├── 节点 + 边模型
|
||||
│ ├── 图遍历(祖先/后代/依赖链)
|
||||
│ ├── 完整性校验
|
||||
│ └── 按多维度检索
|
||||
└── factory-reporting.mjs # Part F:报告体系
|
||||
├── Factory Report
|
||||
├── Project Report
|
||||
├── Product Report
|
||||
├── Release Report
|
||||
└── Business Report
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Factory Contract
|
||||
|
||||
所有 SF-01 ~ SF-15 必须遵守的统一接口:
|
||||
|
||||
| 类型 | 作用 | 必填字段 |
|
||||
|------|------|----------|
|
||||
| `FactoryInput` | Factory 入参 | `factoryId` |
|
||||
| `FactoryOutput` | Factory 出参 | `factoryId`, `status` |
|
||||
| `FactoryArtifact` | Factory 产物 | `kind`, `name`, `factoryId` |
|
||||
| `FactoryMetric` | 度量指标 | `factoryId`, `name`, `value` |
|
||||
| `FactoryReport` | 标准化报告 | `type`, `title` |
|
||||
| `FactoryDependency` | Factory 间依赖 | `from`, `to` |
|
||||
|
||||
### Artifact 种类(10 种)
|
||||
|
||||
```
|
||||
requirement → prototype → design → architecture → code
|
||||
→ test → release → report → operations → marketing
|
||||
```
|
||||
|
||||
### 依赖种类(4 种)
|
||||
|
||||
| Kind | 含义 | 行为 |
|
||||
|------|------|------|
|
||||
| `hard` | 硬依赖 | 上游失败 → 下游阻断 |
|
||||
| `soft` | 软依赖 | 上游失败 → 下游可继续 |
|
||||
| `data` | 数据依赖 | 上游产物作为下游输入 |
|
||||
| `trigger` | 触发依赖 | 上游完成触发下游启动 |
|
||||
|
||||
---
|
||||
|
||||
## Factory Registry
|
||||
|
||||
注册 SF-01 ~ SF-15 共 15 个 Factory:
|
||||
|
||||
| ID | 名称 | 领域 | 核心 input → output |
|
||||
|----|------|------|---------------------|
|
||||
| SF-01 | 产品战略工厂 | product-strategy | other → requirement, report |
|
||||
| SF-02 | 需求工程工厂 | requirement-engineering | requirement → requirement, prototype |
|
||||
| SF-03 | 产品设计工厂 | product-design | requirement → design, prototype |
|
||||
| SF-04 | 视觉设计工厂 | visual-design | design → design |
|
||||
| SF-05 | 技术架构工厂 | architecture | requirement, design → architecture, code |
|
||||
| SF-06 | 平台规划工厂 | platform-planning | architecture → architecture, report |
|
||||
| SF-07 | 全栈开发工厂 | full-stack-development | architecture, design, requirement → code, test |
|
||||
| SF-08 | Agent 协作工厂 | agent-collaboration | requirement, code → code, report |
|
||||
| SF-09 | 质量治理工厂 | quality-governance | code, test, architecture → report |
|
||||
| SF-10 | 测试工厂 | testing | code, architecture → test, report |
|
||||
| SF-11 | 发布工厂 | release | code, test, report → release, report |
|
||||
| SF-12 | 运维工厂 | operations | release, report → operations, report |
|
||||
| SF-13 | 演进工厂 | evolution | operations, report → requirement, report |
|
||||
| SF-14 | 增长工厂 | growth | operations, report → report, marketing |
|
||||
| SF-15 | 软件公司工厂 | software-company | report → report |
|
||||
|
||||
### Registry API
|
||||
|
||||
```javascript
|
||||
const registry = createFactoryRegistry();
|
||||
|
||||
registry.get("SF-07"); // → Factory 元数据
|
||||
registry.list({ domain: "testing" }); // → 按领域过滤
|
||||
registry.getDependencies("SF-07"); // → 上游依赖
|
||||
registry.getDependents("SF-05"); // → 下游依赖者
|
||||
registry.getTopologicalOrder(); // → 拓扑排序
|
||||
registry.getParallelBatches(); // → 并行批次
|
||||
|
||||
// 注入实现
|
||||
registry.registerImplementation("SF-07", myFullStackFactory);
|
||||
registry.execute("SF-07", input); // → FactoryOutput
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Product Model
|
||||
|
||||
### 产品组件类型(15 种)
|
||||
|
||||
```
|
||||
Desktop App / Web App / Official Website / Admin System
|
||||
Backend Service / Database / Android App / iOS App
|
||||
Mini Program / API Platform / Payment System
|
||||
Account System / License System / Download Center
|
||||
Update Service
|
||||
```
|
||||
|
||||
### 生命周期(8 阶段)
|
||||
|
||||
```
|
||||
concept → planning → development → testing
|
||||
→ staging → production → maintenance → sunset
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Workflow Engine
|
||||
|
||||
### 执行模式(4 种)
|
||||
|
||||
| 模式 | 行为 |
|
||||
|------|------|
|
||||
| `sequential` | 按 stages 顺序逐个执行 |
|
||||
| `parallel` | 并行执行所有阶段(忽略依赖) |
|
||||
| `dependency` | 按依赖图自动排序,批量并行执行 |
|
||||
| `conditional` | 按条件逐个执行 |
|
||||
|
||||
### 标准流程(13 阶段)
|
||||
|
||||
```
|
||||
SF-01 Strategy
|
||||
↓
|
||||
SF-02 Requirement
|
||||
↓
|
||||
SF-03 Design ──→ SF-05 Architecture
|
||||
↓ ↓
|
||||
SF-04 UI SF-06 Platform Planning
|
||||
↓ ↓
|
||||
└──────→ SF-07 Development ←──────┘
|
||||
↓
|
||||
SF-09 Quality ──→ SF-10 Testing
|
||||
↓ ↓
|
||||
└──────→ SF-11 Release ←──────┘
|
||||
↓
|
||||
SF-12 Operations
|
||||
↓
|
||||
SF-14 Growth ──→ SF-13 Evolution
|
||||
```
|
||||
|
||||
### 失败策略(4 种)
|
||||
|
||||
| 策略 | 行为 |
|
||||
|------|------|
|
||||
| `stop` | 遇失败立即停止工作流 |
|
||||
| `continue` | 记录失败,继续执行 |
|
||||
| `retry` | 自动重试(最多 maxRetries 次) |
|
||||
| `fallback` | 执行备选路径 |
|
||||
|
||||
---
|
||||
|
||||
## Artifact Graph
|
||||
|
||||
### 图结构
|
||||
|
||||
- **节点 (ArtifactNode)**: 产物(代码/文档/测试/报告/…)
|
||||
- **边 (ArtifactEdge)**: 关系(依赖/产出/派生/包含/…)
|
||||
|
||||
### 关系类型(8 种)
|
||||
|
||||
```
|
||||
depends_on / produces / parent_of / derived_from
|
||||
references / contains / input_to / related_to
|
||||
```
|
||||
|
||||
### 图操作
|
||||
|
||||
```javascript
|
||||
const graph = createArtifactGraph();
|
||||
graph.addNode(node);
|
||||
graph.addEdge(edge);
|
||||
|
||||
graph.getAncestors(nodeId); // 追溯依赖祖先
|
||||
graph.getDescendants(nodeId); // 追溯下游依赖者
|
||||
graph.getDependencyChain(nodeId); // 拓扑排序依赖链
|
||||
graph.getDirectDependencies(nodeId);
|
||||
graph.getDirectDependents(nodeId);
|
||||
graph.validateAll(); // 完整性校验
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Factory Reporting
|
||||
|
||||
| 报告类型 | 内容 |
|
||||
|----------|------|
|
||||
| Factory Report | 单 Factory 执行摘要、产物、风险、决策 |
|
||||
| Project Report | 多 Factory 聚合、风险总结、建议 |
|
||||
| Product Report | 产品状态、组件、生命周期、质量评估 |
|
||||
| Release Report | 发布决策、认证、测试结果、制品 |
|
||||
| Business Report | 产品组合、Factory 舰队、关键指标 |
|
||||
|
||||
---
|
||||
|
||||
## 使用示例
|
||||
|
||||
### 注册并执行 Factory
|
||||
|
||||
```javascript
|
||||
import { createFactoryRegistry, createFactoryInput, createFactoryOutput,
|
||||
createFactoryArtifact, createFactoryMetric } from './src/software-factory-core/index.mjs';
|
||||
|
||||
const registry = createFactoryRegistry();
|
||||
|
||||
// 注入 SF-07 实现
|
||||
registry.registerImplementation("SF-07", (input) => {
|
||||
return createFactoryOutput({
|
||||
factoryId: "SF-07",
|
||||
status: "passed",
|
||||
artifacts: [
|
||||
createFactoryArtifact({ kind: "code", name: "auth.ts", factoryId: "SF-07" }),
|
||||
],
|
||||
metrics: [
|
||||
createFactoryMetric({ factoryId: "SF-07", name: "loc", value: 350, kind: "count", unit: "lines" }),
|
||||
],
|
||||
nextActions: ["Run tests"],
|
||||
});
|
||||
});
|
||||
|
||||
// 执行
|
||||
const input = createFactoryInput({ factoryId: "SF-07" });
|
||||
const output = registry.execute("SF-07", input);
|
||||
console.log(output.status); // "passed"
|
||||
```
|
||||
|
||||
### 编排 Workflow
|
||||
|
||||
```javascript
|
||||
import { createStandardFactoryWorkflow, executeWorkflow } from './src/software-factory-core/index.mjs';
|
||||
|
||||
const wf = createStandardFactoryWorkflow();
|
||||
const result = await executeWorkflow(wf, registry, { product });
|
||||
console.log(result.status); // "completed"
|
||||
```
|
||||
|
||||
### 产物追踪
|
||||
|
||||
```javascript
|
||||
import { createArtifactGraph, createArtifactNode, createArtifactEdge } from './src/software-factory-core/index.mjs';
|
||||
|
||||
const graph = createArtifactGraph();
|
||||
const prd = createArtifactNode({ kind: "requirement", name: "PRD v1", factoryId: "SF-02" });
|
||||
const design = createArtifactNode({ kind: "design", name: "Wireframe", factoryId: "SF-03" });
|
||||
|
||||
graph.addNode(prd);
|
||||
graph.addNode(design);
|
||||
graph.addEdge(createArtifactEdge({ from: design.id, to: prd.id, relation: "depends_on" }));
|
||||
|
||||
const chain = graph.getDependencyChain(design.id);
|
||||
// → [prd, design] (topological order)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 扩展性设计
|
||||
|
||||
### 原则
|
||||
|
||||
1. **禁止硬编码 Factory 实现** — Registry 只管理元数据,实现通过 `registerImplementation()` 外部注入
|
||||
2. **保持兼容** — 不修改 `src/agent-runtime/` 任何文件,不修改现有测试
|
||||
3. **保持可扩展** — `metadata` 字段支持 vendor extensions,自定义 Factory 可在 SF-15 之后添加
|
||||
4. **纯函数优先** — 数据模型为不可变创建模式,引擎为纯函数
|
||||
|
||||
### 未来扩展点
|
||||
|
||||
- 在 SF-01~SF-15 之外注册 `SF-16+`
|
||||
- 实现持久化 Artifact Graph(替换内存 Map)
|
||||
- 添加 Workflow 可视化(Mermaid/DAG 输出)
|
||||
- 集成 CI/CD(自动化 Workflow 触发)
|
||||
|
||||
---
|
||||
|
||||
*PR-36 — Software Factory Core Layer。SF-01 ~ SF-15 的根基。*
|
||||
Reference in New Issue
Block a user