Code Factory

👤 xincen0725 📦 v1.0.1 ⭐ 4.6 ⬇️ 299 下载
💻 开发编程 免费

📖 技能介绍


name: code-factory description: "自动生成完整项目结构(README+requirements+test+ASSET_MANIFEST),运行测试验证后才交付" allowed-tools: - read - write - edit - exec - apply_patch


Code Factory — 代码交付工厂 Skill (v1.0)

将自然语言需求自动转化为可交付的完整项目资产。

架构:分层模块化设计,状态机驱动 + 契约校验 + 事务保护 + 熔断容错。

触发方式

触发短语 动作
"生产一个项目" 激活完整交付流程
"交付一个项目" 激活完整交付流程
"帮我写一个完整的项目" 激活完整交付流程
"创建一个项目叫..." 激活完整交付流程
"给我写一个 [功能] 的工具" 激活完整交付流程

自动触发条件

当检测到用户请求生成完整项目/工具/应用时自动激活。


架构概览

用户输入
  │
  ▼
┌──────────────────────────────────────────────┐
│  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 容器              │
└─────────────────────────────────────────────────┘

执行流程

Phase 0: Preflight — 环境预检

实现模块: layers/preflight.py

生成前先验证环境完整性,避免生成后跑不通: 1. 检查 Python 版本是否满足项目需求 2. 检查目标目录是否存在、可写 3. 检查必要依赖是否已安装 4. 检查磁盘空间是否充足(≥100MB) 5. 不通过则直接报告缺少什么,后续步骤全部 SKIPPED

Step 1: 环境快照

实现模块: layers/step_handlers/snapshot_handler.py

结构化采集环境信息,经过 anti_corruption.py 校验后存入 StepContext

Step 2: Spec 推导与计划生成

实现模块: layers/spec_engine.py

根据用户需求推导内部规格(spec),输出格式受 contracts/ Schema 约束: 1. Spec 推导:从用户需求中提取功能范围、输入输出、边界条件、验收标准 2. 验收标准格式:每条用 Given/When/Then + P1/P2/P3 优先级标记 3. 用户完全无感知——不要求用户写任何 spec,AI 内部完成

Step 3: 生成资产文件

实现模块: 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             # 环境隔离配置

Step 4: 自动验证(含依赖图谱检查)

实现模块: layers/verifier.py

  1. 依赖影响预检:分析模块间依赖,检查是否有循环引用
  2. HARD-GATE 强制门禁验证:凡标记 <!-- HARD-GATE --> 的关键函数/API,必须通过独立验证
  3. 运行 pytest tests/ -v → 确认全部测试通过
  4. 输出结构化审查报告(Risk Assessment → 逐个文件 → 缺失测试 → 建议)

Step 5: 智能重试

实现模块: layers/retry_controller.py

circuit_breaker.py 熔断器保护: - 第 1 次失败:自动分析错误→修改代码→重新验证 - 第 2 次失败:更换修复策略(缩小修改范围)→重新验证 - 第 3 次失败:记录结构化失败模式到 learnings/failure_patterns.json → 暂停并报告

Step 6: 交付

实现模块: 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

代码规范(强制)

  1. 简洁优先:10行能解决→不写20行
  2. 单一职责:每个函数≤30行,只做一件事
  3. 命名清晰:不用 x/tmp/data 等无意义变量名
  4. 类型提示:所有函数参数+返回值加 type hints
  5. 错误处理:不用 pass 或裸 except
  6. 零硬编码:魔法数字/路径/配置提取为常量或参数
  7. 无调试print:最终代码不含 print,用正式日志或异常
  8. HARD-GATE 强制门禁:关键函数/API 入口前必须插入 <!-- HARD-GATE --> 注释标记
  9. 每个公开函数≥1个测试用例
  10. 必须包含边界条件测试(空列表/零值/文件不存在)

注意事项

  • 所有文件使用 UTF-8 编码
  • 如果用户指定了项目名以外的路径偏好,使用用户指定路径
  • 不要修改项目目录以外的任何文件
  • 如果用户只说了功能没给项目名,用功能名加小写下划线命名
  • 技能自身的测试位于 tests/ 目录,运行 pytest tests/ -v

运行技能自身测试

pip 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 执行指令

职责边界

操作 执行方式 说明
项目初始化 Agent LLM 创建项目目录结构
Spec推导 Agent LLM 从需求推导内部规格
资产文件生成 Agent LLM 生成 src/tests/docs 等文件
自动验证 exec脚本 pytest tests/ -v
依赖安装 exec脚本 pip install -e .
重试修复 Agent LLM + exec 分析错误->修改代码->重测
交付 write文件 写入最终交付物

标准工作流

  1. 接收任务描述 -> 创建项目目录
  2. Agent 执行 Spec 推导
  3. Agent 生成代码文件
  4. 安装依赖: pip install -e .

    更多技能请访问小葱技能站7w4.net。

  5. 运行测试: pytest tests/ -v
  6. GREEN -> 交付; RED -> 分析报告->修复->重测(最多3轮)
  7. 写入交付物

错误恢复

  • pip失败 -> 检查 requirements.txt 格式
  • pytest失败 -> 读取错误信息,定位失败用例
  • 3轮重试仍失败 -> 记录失败模式,暂停报告

🤖 AI 评测

这个 Skill 质量相当不错,架构设计专业严谨。它能自动把需求变成完整的项目代码,包括测试、文档、依赖配置等,还会在交付前自动跑测试验证。安全性方面也考虑周全,有输入校验和文件操作保护。优点是功能完善、流程规范、容错能力强;不足是部分功能(如失败模式学习)还是空的,版本号标识有混乱。适合对代码质量有要求的开发者使用。

📊 多维度评分

适应性4.3
规范性4.3
有效性4.6
可靠性4.7
可信度5

📁 包含文件 (65 个)

📄 .pytest_cache/README.md 302 B
📄 SKILL.md 12.1 KB
📄 __init__.py 753 B
📄 _meta.json 131 B
📄 contracts/__init__.py 93 B
📄 contracts/asset_manifest_schema.py 4.4 KB
📄 contracts/exceptions.py 304 B
📄 contracts/input_schema.py 5.6 KB
📄 contracts/output_schema.py 4.6 KB
📄 contracts/step_context.py 7 KB
📄 contracts/step_outputs.py 3 KB
📄 layers/__init__.py 101 B
📄 layers/asset_generator.py 10 KB
📄 layers/deliverer.py 3.7 KB
📄 layers/orchestrator.py 14.2 KB
📄 layers/preflight.py 4.7 KB
📄 layers/retry_controller.py 10.8 KB
📄 layers/spec_engine.py 5.3 KB
📄 layers/step_handlers/__init__.py 263 B
📄 layers/step_handlers/asset_handler.py 1.4 KB
📄 layers/step_handlers/base_handler.py 816 B
📄 layers/step_handlers/delivery_handler.py 845 B
📄 layers/step_handlers/preflight_handler.py 1.3 KB
📄 layers/step_handlers/retry_handler.py 2 KB
📄 layers/step_handlers/snapshot_handler.py 1.2 KB
📄 layers/step_handlers/spec_handler.py 1.4 KB
📄 layers/step_handlers/verify_handler.py 1.2 KB
📄 layers/step_registry.py 5.3 KB
📄 layers/verifier.py 10 KB
📄 learnings/failure_patterns.json 161 B
📄 learnings/learner.py 5.3 KB
📄 middlewares/__init__.py 118 B
📄 middlewares/anti_corruption.py 15.1 KB
📄 middlewares/circuit_breaker.py 7.3 KB
📄 middlewares/pipeline_guard.py 5.5 KB
📄 middlewares/saga_coordinator.py 2.4 KB
📄 middlewares/service_container.py 6.6 KB
📄 middlewares/side_effect_log.py 5.2 KB
📄 middlewares/transaction_manager.py 8.2 KB
📄 pyproject.toml 743 B
📄 skill-card.md 2.2 KB
📄 templates/__init__.py 96 B
📄 templates/environment_template.py 330 B
📄 templates/manifest_template.py 775 B
📄 templates/project_structure.py 279 B
📄 templates/readme_template.py 1.1 KB
📄 templates/run_sh_template.py 639 B
📄 templates/skill_template.py 493 B
📄 tests/__init__.py 45 B
📄 tests/test_anti_corruption.py 6.6 KB
📄 tests/test_asset_generator.py 7.3 KB
📄 tests/test_circuit_breaker.py 5.9 KB
📄 tests/test_contracts.py 7.4 KB
📄 tests/test_deliverer.py 6.2 KB
📄 tests/test_input_schema.py 7.5 KB
📄 tests/test_integration.py 3.9 KB
📄 tests/test_orchestrator.py 5.3 KB
📄 tests/test_preflight.py 2.3 KB
📄 tests/test_regression.py 7.5 KB
📄 tests/test_retry_controller.py 7.3 KB
📄 tests/test_saga_coordinator.py 3.8 KB
📄 tests/test_spec_engine.py 2.8 KB
📄 tests/test_step_registry.py 3.2 KB
📄 tests/test_transaction_manager.py 5.2 KB
📄 tests/test_verifier.py 2.3 KB