Files
16gagent/docs/software-factory-core.md
T
2026-06-06 10:40:48 +08:00

13 KiB
Raw Blame History

Software Factory Core Layer

PR-36Software Factory Core — SF-01 ~ SF-15 全部 Factory 的统一入口。


目录

  1. 架构定位
  2. 模块架构
  3. Factory Contract
  4. Factory Registry
  5. Product Model
  6. Workflow Engine
  7. Artifact Graph
  8. 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 AFactory 注册中心
│   ├── SF-01 ~ SF-15 元数据定义
│   ├── 按领域/依赖/状态查询
│   ├── 拓扑排序 + 并行批次
│   └── 实现注册与执行
├── product-model.mjs         # Part C:统一产品模型
│   ├── 15 种产品组件类型
│   ├── 生命周期管理(8 阶段)
│   └── 默认技术栈推荐
├── workflow-engine.mjs       # Part DFactory 编排引擎
│   ├── 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

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

图操作

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

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

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"

产物追踪

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 的根基。