원클릭으로
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 不會繼續下一階段。