一键导入
concept-integrate
新 Semorphe 概念的最終整合關卡。執行所有驗證步驟 (TypeScript 編譯、單元測試、round-trip 測試、模糊測試), 然後將通過的概念整合到程式碼庫中並完成正確的註冊。 在 /concept.generate 之後作為最終步驟使用。支援任何語言。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
新 Semorphe 概念的最終整合關卡。執行所有驗證步驟 (TypeScript 編譯、單元測試、round-trip 測試、模糊測試), 然後將通過的概念整合到程式碼庫中並完成正確的註冊。 在 /concept.generate 之後作為最終步驟使用。支援任何語言。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
研究程式語言的函式庫、標準標頭檔或語言特性。從文件和網路資源中探索函式簽名、 常見用法模式,按 Topic 層級樹分類,並依 Semorphe 慣例提出概念命名。 用於新增任何語言的函式庫、標頭檔或語言特性支援時。
為概念探索報告中定義的概念產生 BlockSpec JSON、程式碼產生器、提升器和渲染映射。 產生在 Semorphe 語義樹管線中支援新概念所需的所有產出物。 在 /concept.discover 之後使用,用於建立實作產出物。支援任何語言。
為 Semorphe 新增概念的端到端管線。 串接全部 5 個概念 skill:discover → generate → roundtrip → fuzz → integrate。 當你想從「我要支援 <特性>」到完全整合的概念,用一個指令完成時使用。 支援任何語言。
審計、修復並重構 Semorphe 已有的語言概念實作。 偵測四路完備性缺口、信心等級違規、雙重註冊、死概念, 並自動修復缺失的產出物。用於清理技術債和確保第一性原理合規性。 支援任何語言。
為 Semorphe 的程式碼↔積木管線產生資訊隔離的模糊測試。 使用雙代理架構:Agent A(不知道實作)寫真實程式, Agent B 驗證 round-trip 正確性和編譯器/直譯器輸出等價性。 用於找出實作感知測試會遺漏的邊界案例和 bug。支援任何語言。
對特定程式透過 Semorphe 管線執行目標性 round-trip 測試。 驗證:原始碼 → lift → SemanticTree → generate → 原始碼 → 執行 → 比較 stdout。 用於驗證特定概念、除錯已知失敗或回歸測試。支援任何語言。
基于 SOC 职业分类
| name | concept-integrate |
| description | 新 Semorphe 概念的最終整合關卡。執行所有驗證步驟 (TypeScript 編譯、單元測試、round-trip 測試、模糊測試), 然後將通過的概念整合到程式碼庫中並完成正確的註冊。 在 /concept.generate 之後作為最終步驟使用。支援任何語言。 |
| user-invocable | true |
語言指示:所有輸出文件(報告、摘要、註解)必須使用當前對話的語言撰寫。下方模板僅為結構參考,實際用語應配合使用者的語言設定。
此 skill 必須透過 Skill tool 調用,不可手動替代。當由 /concept.pipeline 編排時,pipeline 會使用 Skill tool 調用此 skill。
前置條件:此 skill 只能在 concept-discover、concept-generate、concept-roundtrip、concept-fuzz 都已完成後才能調用(除非使用了 --dry-run 或 --skip-fuzz 旗標)。
完成時必須輸出完成標記(見最後一節)。
$ARGUMENTS
參數應為以下其一:
{lang} {concept_name}(例如 cpp do_while、python list_comprehension){lang} check — 只執行驗證,不整合{lang} status — 顯示該語言所有待整合概念的目前狀態status — 顯示所有語言的概念整合狀態這是新概念正式成為 Semorphe 一部分之前的最終關卡。它驗證所有產出物(BlockSpec、generator、lifter、渲染映射、executor、測試)能正確協同運作,然後將一切接入系統。
在執行整合之前,驗證目標概念的這些檔案是否存在:
src/languages/{lang}/core/blocks.json 或 STD src/languages/{lang}/std/{module}/blocks.jsonsrc/languages/{lang}/core/generators/*.tssrc/languages/{lang}/core/lifters/*.tssrc/interpreter/executors/*.ts 中註冊(可執行概念需實作邏輯,宣告性概念需 noop)tests/(含執行測試)src/languages/{lang}/core/concepts.json 或 STD src/languages/{lang}/std/{module}/concepts.json 中註冊如果是通用概念,額外檢查:
src/core/types.ts 中的 UniversalConcept 型別已更新如果缺少任何產出物,報告缺少哪些,並建議先執行 /concept.generate 或 /concept.refactor fix。
這是整合的第一道關卡,不可跳過。
對目標概念執行自動化六路掃描(P2 §2.2 四路完備性 + Execute + Test):
# 用 grep 搜尋概念在各路徑中的存在性
grep -rn "'{concept_id}'" src/languages/{lang}/ src/interpreter/executors/ tests/ --include="*.ts" --include="*.json"
逐一確認:
| # | 路徑 | 搜尋目標 | 存在? |
|---|---|---|---|
| 1 | Lift | lifter register() 或 lift-patterns.json 條目 | |
| 2 | Render | blocks.json 中的 BlockSpec + renderMapping | |
| 3 | Extract | PatternExtractor auto-derive 可反向提取(blockDef args + concept children);動態概念需有 dynamicRules;expression counterpart 須有完整 blockDef args0 | |
| 4 | Generate | generator generators.set() | |
| 5 | Execute | executor register() | |
| 6 | Test | 測試檔含 lift/generate/round-trip 測試 |
任何路徑缺失即為阻擋問題:
/concept.generate {lang} {concept} 補全,或 /concept.refactor {lang} fix {concept} 修復npx tsc --noEmit
這會捕捉:缺少的 import、型別不匹配、不正確的欄位型別。
如果失敗,報告錯誤並停止。
npm test
所有現有測試必須通過。新概念不能破壞任何東西。
如果測試失敗:
對正在整合的概念,產生 5-10 個代表性程式並執行 round-trip 驗證(同 /concept.roundtrip 流程)。
概念身分驗證(必要):除了驗證 roundtrip 穩定性和 stdout 等價性之外,每個測試都必須斷言語義樹中使用了正確的 conceptId。這防止 lifter 退化到通用概念(如 var_declare)卻碰巧生成正確程式碼的假陽性。範例:
const ptrs = findConcepts(sem!, 'cpp_pointer_declare')
expect(ptrs.length).toBeGreaterThan(0)
如果語義樹中存在錯誤的概念,即使 roundtrip 程式碼正確,也應標記為 WRONG_CONCEPT 並視為 BUG 修復。
所有程式必須 PASS 或 DEGRADED。
測試新概念與現有概念正確組合:
產生 3-5 個組合程式。
驗證積木在 Blockly 中正確渲染:
renderToBlocklyState()expressionCounterpart,驗證兩種形式都能渲染掃描該概念的 lifter 實作,驗證信心等級設定是否符合第一性原理:
pattern-lifter.ts),確認匹配後有語義驗證步驟,不可在未驗證的情況下設 confidence: 'high'call_expression),確認 lifter 在歧義情境下使用 confidence: 'warning' 而非 'high'raw_code 降級路徑,而非靜默丟棄節點warning 使用頻率:如果概念的 lifter 從未設定 warning,但存在歧義情境,標記為建議修復輸出信心等級審計結果:
信心等級審計:
- high 使用:{N} 處({是否合規})
- warning 使用:{N} 處({是否合規})
- inferred 使用:{N} 處
- raw_code 降級:{有/無}
- composite 語義驗證:{有/無}
如果發現 composite pattern 無語義驗證且設為 high,標記為警告(不阻擋整合,但記錄在已知限制中)。
掃描新概念的 BlockSpec 和 i18n 條目,驗證標籤風格是否符合規範且與同類概念一致。
審計步驟:
message0 中引用的所有 %{BKY_...} keysrc/i18n/zh-TW/blocks.json 和 src/i18n/en/blocks.json 取得翻譯文字| 檢查項 | 通過條件 | 失敗時 |
|---|---|---|
| 中文為描述式 | 包含動詞,不含括號或原始語法 | ⚠️ 建議修改 |
| 英文首字母大寫 | 以大寫字母開頭的動詞短語 | ⚠️ 建議修改 |
| 函式/方法名未當標籤 | 標籤不含 .method() 或 func() 語法 | ⚠️ 建議修改 |
| 語言關鍵字未當標籤 | 標籤不以原始語言關鍵字開頭(如 C++ 的 const、virtual、auto;Python 的 def、class;Java 的 abstract、synchronized) | ⚠️ 建議修改 |
| 語法符號未當標籤 | 標籤不含語言特殊語法(如 C++ 的 static_cast<>(), [&](), ~;Python 的 @decorator) | ⚠️ 建議修改 |
| tooltip 非重複 | tooltip 翻譯與 message0 翻譯不同 | ⚠️ 建議修改 |
| 同類風格一致 | 與同 category 現有標籤使用相同句式 | ⚠️ 建議修改 |
| i18n key 存在 | 所有引用的 %{BKY_...} key 在兩個語系檔中都有定義 | ❌ 阻擋 |
輸出:
i18n 標籤審計:
- 中文描述式:✅/⚠️({問題標籤})
- 英文動詞短語:✅/⚠️({問題標籤})
- tooltip 品質:✅/⚠️({問題標籤})
- 同類一致性:✅/⚠️({偏離的標籤 vs 參照})
- i18n key 完整性:✅/❌
i18n key 缺失為阻擋問題(積木會顯示原始 key 而非翻譯文字)。其餘為建議修改——自動修復後繼續整合。
檢查新概念的 lifter 註冊是否與現有 pattern 發生優先權衝突:
如果偵測到衝突,報告哪些 pattern 重疊並建議調整 priority。見 §2.3 Pattern 歧義偵測與仲裁。
檢查概念在所有必要位置都有正確註冊:
src/languages/{lang}/core/concepts.json 或 STD src/languages/{lang}/std/{module}/concepts.json)src/languages/{lang}/core/blocks.json 或 STD src/languages/{lang}/std/{module}/blocks.json)src/languages/{lang}/toolbox-categories.ts)src/languages/{lang}/lift-patterns.json)it.todo / it.skip(強制)在整合前,掃描 tests/integration/ 和 tests/unit/ 中與此概念相關的測試檔,檢查是否存在殘留的 it.todo 或 it.skip:
grep -rn 'it\.todo\|it\.skip' tests/ --include="*.test.ts" | grep -i "{concept_or_scope}"
對每個找到的 it.todo / it.skip:
it(...) 測試殘留 it.todo 數量必須在整合摘要中報告。 整合後不允許存在「應該能修但沒修」的 it.todo。
| 狀態 | 行動 |
|---|---|
| 所有檢查通過 | ✅ 繼續整合 |
| 僅有風格/格式問題 | ✅ 自動修復並整合 |
| 邊界案例的 round-trip 失敗 | ⚠️ 整合並記錄已知限制 |
| 型別錯誤或測試失敗 | ❌ 不整合 — 報告問題 |
| 破壞現有概念 | ❌ 不整合 — 這是阻擋問題 |
如果所有檢查通過:
git add -A,逐檔 stage 避免加入無關檔案feat({lang}): add {concept_name} concept/concept.pipeline 批次調用,跳過 commit(由 pipeline 統一 commit)輸出:
## 整合完成:{concept_name}({language})
### 整合的產出物
- Block spec:核心 `src/languages/{lang}/core/blocks.json` 或 STD `src/languages/{lang}/std/{module}/blocks.json` — {block_type}
- Generator:核心 `src/languages/{lang}/core/generators/{file}.ts` 或 STD `src/languages/{lang}/std/{module}/generators.ts`
- Lifter:核心 `src/languages/{lang}/core/lifters/{file}.ts` 或 STD `src/languages/{lang}/std/{module}/lifters.ts`
- Executor:`src/interpreter/executors/{file}.ts`(可執行概念需實作邏輯,宣告性概念需 noop)
- Concept def:核心 `src/languages/{lang}/core/concepts.json` 或 STD `src/languages/{lang}/std/{module}/concepts.json`
- 測試:`tests/unit/languages/{lang}/{concept}.test.ts`
### 測試結果
- TypeScript:✅ 無錯誤
- 單元測試:✅ {N} 個通過
- Round-trip:✅ {N}/{M} 個程式通過
- 跨概念:✅ {N} 個組合已測試
### Topic 層級樹
- 歸屬於 Topic `{topic_id}` 的 `{level_node_id}` 節點 — 使用者啟用該分支時可用
### 已知限制
- {任何降級為 raw_code 的邊界案例}
### 建議後續
- {可接著新增的相關概念}
以 status 或 {lang} status 呼叫時,掃描程式碼庫並報告:
## 概念整合狀態
### 語言:{language}
#### 完全整合
| 概念 | Topic 節點 | Layer | 積木類型 |
|------|-----------|-------|----------|
#### 部分實作(缺少某些產出物)
| 概念 | Generator | Lifter | Block | 測試 |
|------|-----------|--------|-------|------|
#### 在 concepts.json 中但無實作
| 概念 | Topic 節點 | 備註 |
|------|-----------|------|
此 skill 完成後,必須輸出以下格式的完成標記:
🏁 SKILL_COMPLETE: concept-integrate | {lang} | {concept_name} | {PASS/FAIL} | 殘留 todo: {N}
如果未輸出此標記,pipeline 的該概念視為未整合。