fskill-creator
目標
統一建立(create)與遷移(migrate)兩條路徑,產出一個自包含、可審查、可測試的功能代理技能目錄。主要技能負責路由、藍圖標準化、共享工件生成、運行時能力提供、檔案寫入與驗證;子技能僅處理各自輸入形式的預分析。
使用此技能的場景:使用者想要「生成一個功能技能」、「建立一個功能技能」、「為現有功能技能增加函數」或「將現有舊版技能目錄遷移為功能技能」。
原則
- 主要
SKILL.md僅負責協調共享的建立/遷移/增強/驗證工作流程。 - 建立與遷移是兩條預處理路徑;它們必須先收斂成統一的
skill_blueprint。 - 函數特有的行為放在
functions/*.md;建立/遷移特有的預處理行為放在sub-skills/*/functions/*.md。 - 共享詞彙、政策與結構描述放在
references/*.md。 - 確定性解析、格式化、驗證與機械性轉換放在
scripts/。 - 報告、單元測試、檢視器與測試案例能力只在主要技能中維護一次,並透過
add_runtime_capabilities分發到目標技能。 - 保留使用者提供的領域限制;遷移路徑也必須保留舊版行為的證據。
- 當使用者未核准直接修改時,生成的檔案應視為提案。
子技能
| 子技能 | 使用時機 | 職責 | 輸出 |
|---|---|---|---|
sub-skills/create | 使用者提供新技能簡述,或想增強現有功能技能 | 標準化需求、目標路徑、輸入/輸出、限制與檢視器選擇 | create_context |
sub-skills/migrate | 使用者提供舊版技能目錄、單體技能內容或遷移請求 | 載入舊版技能套件,識別必須保留的行為,提出函數邊界與證據 | migration_context |
子技能不直接撰寫最終目標技能檔案。它們的輸出必須先經過 normalize_skill_blueprint 才能進入共享工件管線。
參考資源
| 資源 | 載入時機 | 目的 |
|---|---|---|
shared_glossary | 按需載入 | 穩定的術語與跨路徑欄位語意。 |
script_rules | 設計或撰寫腳本前 | 判斷確定性工作是否應歸入 scripts/ 的規則。 |
sub-skills/create | 建立路徑 | 從使用者簡述形成 create_context。 |
sub-skills/migrate | 遷移路徑 | 從舊版技能目錄形成 migration_context。 |
外部輸入
| 欄位 | 來源 | 描述 |
|---|---|---|
task_mode | 使用者或推導 | create、migrate、enhance 或 validate;若未提供則由 resolve_task_mode 推斷。 |
skill_request | 使用者 | 建立或增強技能的需求描述。 |
legacy_skill_dir | 使用者或儲存庫 | 現有舊版技能目錄的路徑,內含 SKILL.md 與可選的附屬檔案。 |
legacy_skill_path | 使用者或儲存庫 | legacy_skill_dir 的已棄用別名;也可能是 SKILL.md 的直接路徑,此時會解析到其父目錄。 |
legacy_skill_content | 使用者 | 當路徑無法存取時提供的舊版技能 Markdown 內容。 |
target_skill_path | 使用者或推導 | 功能技能應存放的目錄。 |
skill_name | 使用者或推導 | 可選的目標技能名稱。 |
existing_skill_files | 儲存庫 | 可選的現有功能技能檔案。 |
migration_constraints | 使用者 | 遷移期間必須保留的檔案名稱、語氣、平台規則或行為。 |
known_testcases | 使用者或儲存庫 | 現有範例、軌跡或預期行為。 |
existing_scripts | 儲存庫 | 與舊版技能關聯的輔助腳本。 |
include_report | 使用者 | 是否在目標技能中生成報告日誌執行器;預設為 true。 |
include_unittest | 使用者 | 是否在目標技能中生成單元測試/測試案例執行器;預設為 true。 |
script_runtime | 環境 | 該技能自身的 Node.js 腳本能否執行。 |
report_mode | 使用者 | off、local 或 remote;預設為 off。 |
檢視器根據能力旗標生成:include_report=true 時產生 tools/log_viewer.mjs;include_unittest=true 時產生 tools/tester_viewer.mjs。
執行管線
| 步驟 | 函數 | 目的 | 輸入 | 輸出 |
|---|---|---|---|---|
| 1 | resolve_task_mode | 判斷此請求應走建立、遷移、增強或驗證路徑。 | task_modeskill_requestlegacy_skill_dirlegacy_skill_pathlegacy_skill_contentexisting_skill_files | task_context |
| 2A | sub-skills/create::collect_create_brief | 建立/增強路徑:標準化使用者簡述。 | skill_requesttarget_skill_pathskill_name | create_context |
| 2B | sub-skills/migrate::load_legacy_skill + map_existing_behavior + propose_function_split + extract_shared_references | 遷移路徑:讀取舊版技能套件,提取行為與遷移證據。 | legacy_skill_dirlegacy_skill_pathlegacy_skill_contentmigration_constraintsinclude_reportinclude_unittestscript_runtime | migration_context |
| 3 | normalize_skill_blueprint | 將建立/遷移/增強輸入收斂成統一藍圖。 | task_contextcreate_contextmigration_contexttarget_skill_pathinclude_reportinclude_unittest | skill_blueprint |
| 4 | design_skill_structure | 根據藍圖設計函數管線、參考資源、腳本、測試案例與檔案佈局。 | skill_blueprintexisting_skill_filesscript_rules | skill_structurescript_plantool_plan |
| 5 | draft_skill_artifacts | 起草 SKILL.md、函數合約、參考資源、腳本規格與測試案例建議。 | skill_blueprintskill_structurescript_plan | skill_artifacts |
| 6 | add_runtime_capabilities | 根據包含旗標提供報告日誌、運行時包裝、單元測試案例執行器、檢視器與煙霧測試。 | skill_blueprint.include_reportskill_blueprint.include_unittestskill_artifacts | runtime_artifactsskill_artifacts |
| 7 | assemble_skill_files | 生成或更新目標技能目錄中的檔案。 | target_skill_pathskill_structureskill_artifactsruntime_artifactsscript_runtime | file_plancreated_filesupdated_files |
| 8 | validate_skill | 驗證功能技能結構、運行時能力、測試案例與遷移行為保留。 | target_skill_pathfile_planskill_blueprintreport_mode | validation_result |
輸出範圍
此技能可以讀取舊版技能,並在 target_skill_path 下建立或修改功能技能檔案。除非使用者明確要求刪除,否則不要刪除原始舊版技能;除非使用者明確要求專案層級整合,否則不要修改不相關的儲存庫檔案。