name: code-factory description: "自动生成完整项目结构(README+requirements+test+ASSET_MANIFEST),运行测试验证后才交付" allowed-tools: - read - write - edit - exec - apply_patch
将自然语言需求自动转化为可交付的完整项目资产。
架构:分层模块化设计,状态机驱动 + 契约校验 + 事务保护 + 熔断容错。
| 触发短语 | 动作 |
|---|---|
| "生产一个项目" | 激活完整交付流程 |
| "交付一个项目" | 激活完整交付流程 |
| "帮我写一个完整的项目" | 激活完整交付流程 |
| "创建一个项目叫..." | 激活完整交付流程 |
| "给我写一个 [功能] 的工具" | 激活完整交付流程 |
当检测到用户请求生成完整项目/工具/应用时自动激活。
用户输入
│
▼
┌──────────────────────────────────────────────┐
│ contracts/ 数据契约层 │
│ ├─ input_schema.py → ProjectRequest │
│ ├─ output_schema.py → ProjectResult │
│ ├─ step_context.py → StepContext │
│ ├─ step_outputs.py → TypedDict 类型定义 │
│ ├─ asset_manifest_schema.py │
│ └─ exceptions.py → 统一异常定义 │
└──────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────┐
│ layers/ 核心执行层 │
│ ├─ orchestrator.py 状态机编排引擎 │
│ ├─ step_registry.py 步骤注册表 │
│ ├─ step_handlers/ 步骤处理器 (7个) │
│ │ ├─ preflight_handler.py │
│ │ ├─ snapshot_handler.py │
│ │ ├─ spec_handler.py │
│ │ ├─ asset_handler.py │
│ │ ├─ verify_handler.py │
│ │ ├─ retry_handler.py │
│ │ └─ delivery_handler.py │
│ ├─ preflight.py Phase 0 预检 │
│ ├─ spec_engine.py Spec 推导引擎 │
│ ├─ asset_generator.py 资产生成器 │
│ ├─ verifier.py 自动验证器 │
│ ├─ retry_controller.py 智能重试控制器 │
│ └─ deliverer.py 交付组装器 │
│ Phase0 → Step1 → Step2 → ... → Step6 │
│ 每步独立执行、独立失败、独立回滚 │
└─────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────┐
│ middlewares/ 横切中间件 │
│ ├─ circuit_breaker.py 熔断器 │
│ ├─ transaction_manager.py 事务管理 (UoW) │
│ ├─ anti_corruption.py 防腐层 (ACL) │
│ ├─ pipeline_guard.py 管道守护者 │
│ ├─ saga_coordinator.py Saga 补偿协调器 │
│ ├─ side_effect_log.py 副作用追踪器 │
│ └─ service_container.py DI 容器 │
└─────────────────────────────────────────────────┘
实现模块:
layers/preflight.py
生成前先验证环境完整性,避免生成后跑不通: 1. 检查 Python 版本是否满足项目需求 2. 检查目标目录是否存在、可写 3. 检查必要依赖是否已安装 4. 检查磁盘空间是否充足(≥100MB) 5. 不通过则直接报告缺少什么,后续步骤全部 SKIPPED
实现模块:
layers/step_handlers/snapshot_handler.py
结构化采集环境信息,经过 anti_corruption.py 校验后存入 StepContext。
实现模块:
layers/spec_engine.py
根据用户需求推导内部规格(spec),输出格式受 contracts/ Schema 约束:
1. Spec 推导:从用户需求中提取功能范围、输入输出、边界条件、验收标准
2. 验收标准格式:每条用 Given/When/Then + P1/P2/P3 优先级标记
3. 用户完全无感知——不要求用户写任何 spec,AI 内部完成
实现模块:
layers/asset_generator.py+templates/
所有文件写入通过 TransactionManager 暂存到 staging 区域:
- 验证全部通过 → tx.commit() 原子提交
- 任何步骤失败 → tx.rollback() 完整回滚
标准化项目结构:
project_assets/[project_name]/
├── src/ # 源码目录
│ └── main.py # 主程序(<!-- HARD-GATE --> 标记)
├── tests/ # 测试目录
│ └── test_main.py # pytest 测试
├── docs/ # 文档目录
│ └── README.md # 使用说明/安装/依赖
├── requirements.txt # 依赖清单
├── run.sh # 一键运行脚本
├── SKILL.md # AI 技能元数据头
├── ASSET_MANIFEST.md # 人类可读版资源地图表
├── manifest.json # 机器可读版资产清单
└── environment.toml # 环境隔离配置
实现模块:
layers/verifier.py
<!-- HARD-GATE --> 的关键函数/API,必须通过独立验证pytest tests/ -v → 确认全部测试通过实现模块:
layers/retry_controller.py
受 circuit_breaker.py 熔断器保护:
- 第 1 次失败:自动分析错误→修改代码→重新验证
- 第 2 次失败:更换修复策略(缩小修改范围)→重新验证
- 第 3 次失败:记录结构化失败模式到 learnings/failure_patterns.json → 暂停并报告
实现模块:
layers/deliverer.py
输出: - 项目路径(绝对路径) - README.md 内容预览 - ASSET_MANIFEST.md 资源地图摘要 - manifest.json 机器可读摘要 - 测试结果摘要
PENDING ──→ RUNNING ──→ SUCCESS
├──→ FAILED ──→ (retry ≤ 3) ──→ RUNNING
│ └──→ (retry exhausted) ──→ 记录失败模式
├──→ TIMED_OUT (单步骤 > 120s)
└──→ ROLLED_BACK (事务回滚)
PENDING ──→ SKIPPED (前置条件不满足,如 Phase 0 失败)
全局熔断规则 (middlewares/circuit_breaker.py):
- 全局超时:600s
- 单步骤超时:120s
- 连续 3 次失败 → 熔断打开,拒绝后续请求
contracts/ 目录)| 契约文件 | 约束内容 |
|---|---|
input_schema.py |
ProjectRequest — project_name 格式、description 长度、python_version 格式、安全上限 |
output_schema.py |
ProjectResult, StepResult, StepStatus — 统一成功/失败标准(六态转换) |
step_context.py |
StepContext — 步骤间唯一数据载体,线程安全,TypedDict 类型标注 |
step_outputs.py |
TypedDict 定义 — 7 个步骤的输出类型契约 |
asset_manifest_schema.py |
AssetManifest — 锁定 manifest.json 字段格式 |
exceptions.py |
统一异常定义 — PreflightFailedError |
小葱技能站7w4.net每天更新,海量AI技能等你发现。
pass 或裸 exceptprint,用正式日志或异常<!-- HARD-GATE --> 注释标记tests/ 目录,运行 pytest tests/ -vpip install -e ".[dev]"
pytest tests/ -v
| 检查项 | 状态 | 说明 |
|---|---|---|
| name 存在 | ✅ | code-factory |
| name = 目录名 | ✅ | vs code-factory |
| description 存在 | ✅ | 自动生成项目结构... |
| 触发方式清晰 | ✅ | 5 个触发短语表 |
| 有 H1 标题 | ✅ | # Code Factory |
| 分层架构 | ✅ | contracts + layers + step_handlers + middlewares + templates |
| 状态机驱动 | ✅ | PENDING→RUNNING→SUCCESS/FAILED/SKIPPED/ROLLED_BACK/TIMED_OUT 六态 |
| 事务保护 | ✅ | TransactionManager prepare→commit→rollback 原子三段式 |
| 熔断容错 | ✅ | CircuitBreaker CLOSED/OPEN/HALF_OPEN 三态 + 全局 600s / 步骤 120s |
| 契约校验 | ✅ | 防腐层 7 步 ACL 校验(含 Step6 出口校验) |
| 副作用追踪 | ✅ | SideEffectTracker 审计 + 补偿计划生成 + 幂等性检测 |
| 跨步骤补偿 | ✅ | SagaCoordinator 逆序补偿 + 精准文件清理 |
| 幂等性 | ✅ | AssetGenerator 内容比对,跳过相同文件 |
| 退避重试 | ✅ | RetryController 3 次重试 + 指数退避 (1s/2s/4s) |
| 零外部 API 依赖 | ✅ | 纯本地生成 |
| 验证机制 | ✅ | Phase 0 预检 + Step 4 验证 + Step 5 智能重试 |
| 双格式输出 | ✅ | ASSET_MANIFEST.md(人类)+ manifest.json(机器) |
| 标准化结构 | ✅ | src/tests/docs 三级目录 |
| 失败闭环 | ✅ | learnings/failure_patterns.json 结构化记录 + 原子写入 |
| Spec 驱动 | ✅ | 内部 spec→plan→tasks 三段式 |
| 依赖预检 | ✅ | 依赖图谱 + HARD-GATE 验证 |
| 环境隔离 | ✅ | environment.toml + venv |
| 技能元数据 | ✅ | 自动生成标准 SKILL.md 头部 |
| 审查报告 | ✅ | 结构化输出 Risk→Files→Tests→Suggestions |
| 可测试 | ✅ | tests/ 17 个测试文件 + 174 测试用例 |
| 操作 | 执行方式 | 说明 |
|---|---|---|
| 项目初始化 | Agent LLM | 创建项目目录结构 |
| Spec推导 | Agent LLM | 从需求推导内部规格 |
| 资产文件生成 | Agent LLM | 生成 src/tests/docs 等文件 |
| 自动验证 | exec脚本 | pytest tests/ -v |
| 依赖安装 | exec脚本 | pip install -e . |
| 重试修复 | Agent LLM + exec | 分析错误->修改代码->重测 |
| 交付 | write文件 | 写入最终交付物 |
这个 Skill 质量相当不错,架构设计专业严谨。它能自动把需求变成完整的项目代码,包括测试、文档、依赖配置等,还会在交付前自动跑测试验证。安全性方面也考虑周全,有输入校验和文件操作保护。优点是功能完善、流程规范、容错能力强;不足是部分功能(如失败模式学习)还是空的,版本号标识有混乱。适合对代码质量有要求的开发者使用。