ワンクリックで
concept-discover
研究程式語言的函式庫、標準標頭檔或語言特性。從文件和網路資源中探索函式簽名、 常見用法模式,按 Topic 層級樹分類,並依 Semorphe 慣例提出概念命名。 用於新增任何語言的函式庫、標頭檔或語言特性支援時。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
研究程式語言的函式庫、標準標頭檔或語言特性。從文件和網路資源中探索函式簽名、 常見用法模式,按 Topic 層級樹分類,並依 Semorphe 慣例提出概念命名。 用於新增任何語言的函式庫、標頭檔或語言特性支援時。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
為概念探索報告中定義的概念產生 BlockSpec JSON、程式碼產生器、提升器和渲染映射。 產生在 Semorphe 語義樹管線中支援新概念所需的所有產出物。 在 /concept.discover 之後使用,用於建立實作產出物。支援任何語言。
新 Semorphe 概念的最終整合關卡。執行所有驗證步驟 (TypeScript 編譯、單元測試、round-trip 測試、模糊測試), 然後將通過的概念整合到程式碼庫中並完成正確的註冊。 在 /concept.generate 之後作為最終步驟使用。支援任何語言。
為 Semorphe 新增概念的端到端管線。 串接全部 5 個概念 skill:discover → generate → roundtrip → fuzz → integrate。 當你想從「我要支援 <特性>」到完全整合的概念,用一個指令完成時使用。 支援任何語言。
審計、修復並重構 Semorphe 已有的語言概念實作。 偵測四路完備性缺口、信心等級違規、雙重註冊、死概念, 並自動修復缺失的產出物。用於清理技術債和確保第一性原理合規性。 支援任何語言。
為 Semorphe 的程式碼↔積木管線產生資訊隔離的模糊測試。 使用雙代理架構:Agent A(不知道實作)寫真實程式, Agent B 驗證 round-trip 正確性和編譯器/直譯器輸出等價性。 用於找出實作感知測試會遺漏的邊界案例和 bug。支援任何語言。
對特定程式透過 Semorphe 管線執行目標性 round-trip 測試。 驗證:原始碼 → lift → SemanticTree → generate → 原始碼 → 執行 → 比較 stdout。 用於驗證特定概念、除錯已知失敗或回歸測試。支援任何語言。
| name | concept-discover |
| description | 研究程式語言的函式庫、標準標頭檔或語言特性。從文件和網路資源中探索函式簽名、 常見用法模式,按 Topic 層級樹分類,並依 Semorphe 慣例提出概念命名。 用於新增任何語言的函式庫、標頭檔或語言特性支援時。 |
| user-invocable | true |
語言指示:所有輸出文件(報告、摘要、註解)必須使用當前對話的語言撰寫。下方模板僅為結構參考,實際用語應配合使用者的語言設定。
此 skill 必須透過 Skill tool 調用,不可手動替代。當由 /concept.pipeline 編排時,pipeline 會使用 Skill tool 調用此 skill。
完成時必須輸出完成標記(見最後一節)。
$ARGUMENTS
你必須先考慮使用者輸入再繼續。參數格式為 [語言] <目標>,例如:
cpp <algorithm> — 研究 C++ 的 <algorithm> 標頭檔python list comprehension — 研究 Python 的 list comprehensionjava Stream API — 研究 Java 的 Stream API<string> — 未指定語言時,根據語法推斷(此例為 C++)你正在研究某個程式語言的函式庫或語言特性,準備將其整合進 Semorphe — 一個以語義樹驅動的程式教育工具。你的任務是探索有哪些概念存在、它們通常如何被使用,以及如何為學習者分類。
關鍵:開始前請先閱讀專案的第一性原理:
docs/first-principles.md — 特別是 P2(概念代數)和 P4(漸進式揭露)src/core/types.ts — 現有的 UniversalConcept 和 LanguageSpecificConcept 型別然後確認目標語言的現有支援:
src/languages/ — 查看已有哪些語言模組src/languages/{lang}/ — 該語言的現有概念、積木、提升器、產生器如果不是由 /concept.pipeline 調用,且目前不在概念 feature branch 上:
{NNN}-{lang}-{topic} 格式的 feature branch 上specs/ 目錄,找到最大編號 N,使用 N+1{NNN}-{lang}-{short_name}(如 024-cpp-string-ops)short_name 從使用者輸入推導(標頭檔名、特性名、概念群組名)git checkout -b {NNN}-{lang}-{short_name}網路搜尋 目標函式庫/特性:
取得文件:
對每個發現的函式/特性,萃取以下資訊:
| 欄位 | 說明 |
|---|---|
| 語法 | 實際的語法(例如 C++ sort(v.begin(), v.end())、Python sorted(lst)) |
| 語義意義 | 它在概念上做了什麼(例如「排序一個範圍」) |
| 參數 | 學習者需要提供什麼 |
| 常見模式 | 在真實程式碼中通常如何使用 |
| 先備知識 | 學習者必須已經知道的概念 |
| 錯誤模式 | 初學者常犯的錯誤 |
四路完備性 gate:每個概念必須滿足四路完備性(lift → render → extract → generate),缺一 = 覆蓋缺口(§2.2)。Extract 路徑由 PatternExtractor 自動從 blockDef args + concept children 推導(auto-derive),無需手寫 extractor——只需確保 blockDef 和 concept 定義正確即可。若概念有動態結構(repeat inputs、multi-mode slots 等),renderMapping 須包含 dynamicRules。當系統提供語義直譯器時,還需要第五層——execute path(concept → Behavior):可執行概念需 interpreter executor,宣告性概念需 noop executor(見 docs/technical-experiences.md §20)。
概念透過 Topic JSON 檔案(例如 src/languages/{lang}/topics/{lang}-beginner.json)中的 levelTree 組織為樹狀結構。每個 LevelNode 有 id、label、level(深度)、concepts[]、children[]。
倍增軟指引:每往下一層,新增積木數約為上一層兩倍(L08, L116, L2~32)(§2.4)。
表面形態:注意 Surface Form(F0/F1/F2)與概念層級正交——控制同一概念展示多少結構(§2.4)。
為每個概念決定它應歸屬於哪個 Topic 的哪個層級樹節點:
根節點(基礎) — 最少的先備知識:
第一層分支(中級) — 需要基本程式理解:
第二層以上分支(進階) — 需要更深入的理解:
參考現有 Topic 檔案了解該語言已有的層級樹結構,將新概念加入適當的節點。
按照 Semorphe 慣例提出概念名稱:
snake_case(例如 sort_range、find_element)
{lang}:snake_case(例如 cpp:vector_push、py:list_append、java:stream_map)
lang:concept 格式檢查 src/core/types.ts 中現有名稱以避免衝突。
概念分層目錄對應:概念所屬層級決定檔案存放位置:
src/blocks/semantics/src/languages/{lang}/core/(blocks.json、concepts.json)src/languages/{lang}/std/{module}/(blocks.json、concepts.json)產生結構化報告,放在 specs/concepts/ 目錄下,如 specs/concepts/{lang}-{topic}.md:
# 概念探索:{Language} — {Topic}
## 摘要
- 語言:{language}
- 目標:{library/feature}
- 發現概念總數:N
- 通用概念:N、語言特定概念:N
- 建議歸屬的 Topic 層級樹節點:{各節點概念數}
## 概念目錄
按 Topic 層級樹節點分組:
### {根節點 label} — 基礎
| 概念名稱 | 語法 | 語義意義 | 積木輸入 | Layer | 通用/特定 | 降級路徑 | 備註 |
|---|---|---|---|---|---|---|---|
### {第一層分支 label} — 中級
| 概念名稱 | 語法 | 語義意義 | 積木輸入 | Layer | 通用/特定 | 降級路徑 | 備註 |
|---|---|---|---|---|---|---|---|
### {第二層以上分支 label} — 進階
| 概念名稱 | 語法 | 語義意義 | 積木輸入 | Layer | 通用/特定 | 降級路徑 | 備註 |
|---|---|---|---|---|---|---|---|
**降級路徑說明**:每個概念須指明降級路徑(§2.2):
- D1(專屬積木)→ D2(通用概念 fallback)→ D3(raw_code)→ D4(不支援)
- 降級路徑欄填寫 D2 fallback 概念名稱(例如 `func_call`),無則填 `raw_code`
## 依賴關係圖
{哪些概念依賴哪些}
## 建議實作順序
{按依賴關係 + Topic 層級樹深度排序}
## 跨語言對應
{與已支援語言中現有概念的對應關係}
## 需注意的邊界案例
{棘手語法、模糊語義、常見陷阱}
同時檢查現有概念以識別:
此 skill 完成後,必須輸出以下格式的完成標記:
🏁 SKILL_COMPLETE: concept-discover | {lang} | {target} | 發現 {N} 個概念 | 報告:{report_path}
如果未輸出此標記,pipeline 不會繼續下一階段。