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 |
pass 或裸 exceptprint,用正式日誌或異常<!-- HARD-GATE --> 註釋標記發現更多技能外掛,請訪問7w4.net。
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 質量相當不錯,架構設計專業嚴謹。它能自動把需求變成完整的專案程式碼,包括測試、文件、依賴配置等,還會在交付前自動跑測試驗證。安全性方面也考慮周全,有輸入校驗和檔案操作保護。優點是功能完善、流程規範、容錯能力強;不足是部分功能(如失敗模式學習)還是空的,版本號標識有混亂。適合對程式碼質量有要求的開發者使用。