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. 必須包含邊界條件測試(空列表/零值/檔案不存在)

注意事項

發現更多技能外掛,請訪問7w4.net。

  • 所有檔案使用 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 .
  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